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

  • 29.03.2019
  • 1 209
  • 0
  • 100.00%
  • 1
  • 02.04.2019
Делаем резервную копию файлов с сервера FTP

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


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

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

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

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

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

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

И так, предположим мы имеем доступ по FTP к сайту sysadmin.ru, и хотим создать резервную копию всех файлов веб-сервера. Для того, чтобы сделать это, скачиваем портативную версию WinSCP, кладем её по произвольному пути (пусть это будет "D:\Backup\sysadmin.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:\backup\sysadmin.ru\"
D:
winscp.com /command ^
    "open ftp://ЛОГИН:ПАРОЛЬ@АДРЕС СЕРВЕРА" ^
    "get /www/* D:\Backup\sysadmin.ru\%curdate%" ^
    "exit"
"7z.exe" a -t7z -mx8 -m0=lzma2 -mmt=8 -ssw -scsWIN -sdel "D:\Backup\sysadmin.ru\sysadmin.ru-%curdate%.7z" "D:\Backup\sysadmin.ru\%curdate%\*"
rmdir /s/q "D:\Backup\sysadmin.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:\backup\sysadmin.ru\"
D

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

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

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

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

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

rmdir /s/q "D:\Backup\sysadmin.ru\%curdate%"

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

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

Была ли эта статья Вам полезна?




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

Ваш адрес email не будет опубликован.

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.