Делаем резервную копию файлов с сервера FTP

Не смотря на почтенный возраст протокола FTP, он по прежнему используется для доступа ко многим ресурсам, например к хостингам сайтов. В данной статье пойдет речь о том, как можно создать резервную копию файлов с FTP сервера, сперва скачав их, а затем заархивировав.

Используемые программные средства

Для этой цели прекрасно подойдут утилиты WinSCP и 7-Zip. Первая — клиент FTP/SCP/SFTP, который имеет так же замечательную возможность работы только через командную строку, что значительно упрощает автоматизацию задачи создания бэкапа. 7-Zip же — один из самых известных свободных архиваторов, ни в чём не уступающий своим платным аналогам.

Сразу отмечу, что в статье речь пойдет о портабельных версиях выше упомянутых программ, по этому если вы будете полностью устанавливать их на свой компьютер, обратите внимание на необходимость изменения путей в bat скриптах.

Почему портативная версия?

Меньше зависимостей, возможность легкого переноса скрипта под бэкап, где для его работы в самом худшем случае понадобиться только редактирование путей.

Подключение и архивация

И так, предположим мы имеем доступ по FTP к сайту sysadmin.ru, и хотим создать резервную копию всех файлов веб-сервера. Для того, чтобы сделать это, скачиваем портативную версию WinSCP, кладем её по произвольному пути (пусть это будет «D:Backupsysadmin.ru«). Затем скачиваем так же портативную версию 7zip, и кладем её туда же.

Теперь создаем .bat файл следующего содержания

set dd=%DATE:~0,2%  set mm=%DATE:~3,2%  set yyyy=%DATE:~6,4%  set curdate=%yyyy%.%mm%.%dd%    cd "D:backupsysadmin.ru"  D:  winscp.com /command ^      "open ftp://ЛОГИН:ПАРОЛЬ@АДРЕС СЕРВЕРА" ^      "get /www/* D:Backupsysadmin.ru%curdate%" ^      "exit"  "7z.exe" a -t7z -mx8 -m0=lzma2 -mmt=8 -ssw -scsWIN -sdel "D:Backupsysadmin.rusysadmin.ru-%curdate%.7z" "D:Backupsysadmin.ru%curdate%*"  rmdir /s/q "D:Backupsysadmin.ru%curdate%"

Что же происходит в данном bat файле? Разберем его содержимое по пунктам.

set dd=%DATE:~0,2%  set mm=%DATE:~3,2%  set yyyy=%DATE:~6,4%  set curdate=%yyyy%.%mm%.%dd%

Просто формируем красивую дату в формате ГОД.МЕСЯЦ.ДЕНЬ, для её дальнейшего использования в скрипте.

cd "D:backupsysadmin.ru"  D

Данные команды выполняют переход в категорию из которой мы будем работать с исполняемыми файлами FTP клиента и архиватора, а так же хранить архивы.

winscp.com /command ^      "open ftp://ЛОГИН:ПАРОЛЬ@АДРЕС СЕРВЕРА" ^      "get /www/* D:Backupsysadmin.ru%curdate%" ^      "exit"

Здесь мы запускаем FTP клиент и качаем всю папку www, которая хранится в корне сервера (предполагается, что там расположены нужные нам файлы), лежать скачанные файлы будут по адресу «D:Backupsysadmin.ruтекущая-дата«.

"7z.exe" a -t7z -mx8 -m0=lzma2 -mmt=8 -ssw -scsWIN -sdel "D:Backupsysadmin.rusysadmin.ru-%curdate%.7z" "D:Backupsysadmin.ru%curdate%*"

Архивируем все скачанные файлы в архив с текущей датой.

rmdir /s/q "D:Backupsysadmin.ru%curdate%"

Удаляем ранее скачанные файлы, которые нам больше не нужны.

Теперь достаточно просто запустить данный bat файл, и все действия будут выполнены автоматически — файлы будут скачаны и заархивированы. Все что остается — это поместить данный файл в Планировщик задач.

Комментарии

Добавить комментарий

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