- Содержание статьи
Не смотря на почтенный возраст протокола 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 файл, и все действия будут выполнены автоматически — файлы будут скачаны и заархивированы. Все что остается — это поместить данный файл в Планировщик задач.

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