Итак, данной заметкой я хочу усовершенствовать скрипт, отвечающий за бекапирование своих наработок, см. Заметку: «Бекап наработанного на Yandex диск»
Через некоторое время использования своего скрипта заметил, что наработки выросли (я разбираю каждую мелочь, да и мои проекты в свободное от работы время, изучение нового, комбинирование нового и старого), а в следствии возросло время передачи. В принципе оно так и должно быть.
Почему я использую скрипт, а не какое-либо программное обеспечение с графическим интерфейсом? – все просто, мне интересно проработать все самим, вот и как раз настал этот момент усовершенствования. В моем случае я лучше понимаю, как работает та или иная задача, поставленная мне или самим себе, если я разберу все с самого начала.
Но через некоторое время при увеличении размера бекапируемых данных и их последующей передачей процесс стал завершаться ошибкой, ниже скриншот тому прямое подтверждение.
«Данные потеряны. Причиной ошибки мог стать сбой оборудования или сетевого подключения. Сохраните файл по другому адресу» – не слишком-то приятное уведомление.
Размер передаваемого бекапа на Yandex-Диск составляет на момент написания данной заметки: 10.12.2014_<firma>_v1.7z -85Мб, через обычное копирование посредством утилиты copy связь может прерваться и данные буду потеряны, ведь нет ни каких механизмов проверки и поддержания соединения, поэтому я хочу поделиться с читателями моего блога еще одним практическим скриптом.
Но теперь я бекапирую результаты своих наработок на FTP ресурс посредством безопасного подключения через инициализацию sftp соединения.
В качестве инструмента подключения выступит утилита winscp консольного назначения и её использование командной строки. Скачать утилиту Вы можете с официального сайта.
Ниже работающий скрипт с начала появления сообщения об ошибках передачи моих наработок на резервный сервер:
@echo off
if exist "C:\Program Files\7-Zip\7z.exe" goto n:
:n
if exist "C:\Users\ekzorchik\Documents\tips_<firma>\file.txt" goto zip:
:zip
mkdir c:\1
cd /d "C:\Program Files\7-Zip\"
7z a -t7z -p{<password>} -mhe c:\1\%date%_<firma>_v1.7z C:\Users\ekzorchik\Documents\tips_<firma>\
rem Скрипт отработал
cd /d C:\Users\ekzorchik\Documents\tips_<firma>\tips_exe\
WinSCP.com /script="C:\Users\ekzorchik\Documents\tips_<firma>\tips_exe\sftp.txt" /log="C:\Users\ekzorchik\Documents\tips_<firma>\tips_log\winscpsftp.log"
rmdir /s /q c:\1\
pause
exit
rem А это работает, если данные строчки просто скопировать в консоль и запустить - они конечно же отработают, но в текущем скрипте такого не происходит.
rem cd /d "C:\Users\ekzorchik\Documents\tips_<firma>\tips_exe\ssh\"
rem pscp.exe -batch -l <user> -pw "<password>" -P <port> -r c:\backup\%date%_firma_v1.7z <user>@<host>:/backup/
rem exit
А теперь некоторые пояснения:
Файл sftp.txt – это файл, отвечающий за подключение к удаленному FTP ресурсу, содержимое которого:
option batch abort
option confirm off
option reconnecttime 3
open sftp://<user>:<password>@<host>:<port>
put c:\1\*.7z /backup/
exit
Назначение же ключей, с которыми я запускаю ту или иную утилиту можно посмотреть в справочной системе или на официальном сайте программ, приводить же здесь их считаю излишним, дабы не засорять однообразием мой блог по сравнению с другими.
Также в скрипте фигурирует указание, что сохранять лог работы соединения к FTP ресурсу, для себя же это я сделал, чтобы немного понимать все что делается.
Скрипт работает. С моего блога Вы можете скачать Шаблон скрипта для бекапирования наработок и уже после адаптировать его под свои нужны.
Конечно же он не претендует на универсальность, но в последствии как только возникнет необходимость в дополнении я его просто буду модернизировать, оборачивать дополнительным функционалом.
Сейчас это мой инструмент сохранения своих наработок, мой плод интеллектуального труда, мое время. На этом буду прощаться, с уважением автор блога – Олло Александр.