Делаем резервную копию файлов с сервера FTP
- Recluse
- 29.03.2019
- 7 432
- 0
- 08.01.2024
- 1
- 1
- 0
- Содержание статьи
Не смотря на почетный возраст протокола FTP, он по прежнему используется для доступа ко многим ресурсам, например к хостингам сайтов. В данной статье пойдет речь о том, как можно создать резервную копию файлов с FTP сервера, сперва скачав их, а затем заархивировав.
Используемые программные средства
Для этой цели прекрасно подойдут утилиты WinSCP и 7-Zip. Первая - клиент FTP/SCP/SFTP, который имеет так же замечательную возможность работы только через командную строку, что значительно упрощает автоматизацию задачи создания бэкапа. 7-Zip же - один из самых известных свободных архиваторов, ни в чём не уступающий своим платным аналогам.
Сразу отмечу, что в статье речь пойдет о портабельных версиях выше упомянутых программ, по этому если вы будете полностью устанавливать их на свой компьютер, обратите внимание на необходимость изменения путей в 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 файл, и все действия будут выполнены автоматически - файлы будут скачаны и заархивированы. Все что остается - это поместить данный файл в Планировщик задач.
Добавить комментарий