Резервное копирование наработок через WinSCP

Posted by

Итак, данной заметкой я хочу усовершенствовать скрипт, отвечающий за бекапирование своих наработок, см. Заметку: «Бекап наработанного на Yandex диск»

Через некоторое время использования своего скрипта заметил, что наработки выросли (я разбираю каждую мелочь, да и мои проекты в свободное от работы время, изучение нового, комбинирование нового и старого), а в следствии возросло время передачи. В принципе оно так и должно быть.

Почему я использую скрипт, а не какое-либо программное обеспечение с графическим интерфейсом? — все просто, мне интересно проработать все самим, вот и как раз настал этот момент усовершенствования. В моем случае я лучше понимаю, как работает та или иная задача, поставленная мне или самим себе, если я разберу все с самого начала.

Но через некоторое время при увеличении размера бекапируемых данных и их последующей передачей процесс стал завершаться ошибкой, ниже скриншот тому прямое подтверждение.

«Данные потеряны. Причиной ошибки мог стать сбой оборудования или сетевого подключения. Сохраните файл по другому адресу» — не слишком-то приятное уведомление.

Данные потеряны. Связь потеряна

 

Размер передаваемого бекапа на Yandex-Диск составляет на момент написания данной заметки: 10.12.2014_<firma>_v1. -85Мб, через обычное копирование посредством утилиты copy связь может прерваться и данные буду потеряны, ведь нет ни каких механизмов проверки и поддержания соединения, поэтому я хочу поделиться с читателями моего блога еще одним практическим скриптом.

Но теперь я бекапирую результаты своих наработок на FTP ресурс посредством безопасного подключения через инициализацию sftp соединения.

В качестве инструмента подключения выступит утилита консольного назначения и её использование командной строки. Скачать утилиту Вы можете с официального сайта.

Ниже работающий скрипт с начала появления сообщения об ошибках передачи моих наработок на резервный сервер:

@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 ресурсу, для себя же это я сделал, чтобы немного понимать все что делается.

Скрипт работает. С моего блога Вы можете скачать Шаблон скрипта для бекапирования наработок и уже после адаптировать его под свои нужны.

Конечно же он не претендует на универсальность, но в последствии как только возникнет необходимость в дополнении я его просто буду модернизировать, оборачивать дополнительным функционалом.

Сейчас это мой инструмент сохранения своих наработок, мой плод интеллектуального труда, мое время. На этом буду прощаться, с уважением автор блога – Олло Александр.

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

три × 2 =