Резервное копирование сайта с удаленного сервера по расписанию. Часть 2. Резервное копирование файлов по FTP
В предыдущей заметке "Резервное копирование сайта с удаленного сервера по расписанию. Часть 1. Резервное копирование базы" мы описали этапы резервного копирования сайта:
1. Резервное копирование базы
2. Резервное копирование файлов по FTP
3. Автоматизация запуска с помощью cron
Перейдем ко второму этапу - созданию зеркала с помощью FTP.
Для работы понадобится пакет lftp - консольный FTP-клиент. Если в системе он не установлен, установим его:
sudo apt-get install lftp |
Cоздадим bash-скрипт:
#!/bin/bash /usr/bin/lftp -e 'mirror -e --log=/var/log/lftp/yourdomain.log /remote_folder /local_folder; bye;' -u user,password yourdomain |
Назовем его rsync_yourdomain и сохраним в /etc/init.d, задав разрешение на запуск.
lftp man
-e commands - выполняет команду и не завершает соединение
-f script_file выполняет команды из файла и завершает соединение
-c commands выполняет команду и завершает соединение
Не забудьте создать локальную папку (local_folder), например /usr/home/yourdomain, в которую будет складываться бекап, и /var/log/lftp/, в которую будут писаться логи. Проверьте права доступа к этим папкам для пользователя, запускающего скрипты.
P.S. Если вдруг понадобится синхронизировать удаленный сервер с локальным, то есть залить изменения на сервер, скрипт изменится следующим образом:
#!/bin/bash /usr/bin/lftp -e 'mirror -R --log=/var/log/lftp/yourdomain.log /local_folder /remote_folder; bye;' -u user,password yourdomain |
P.P.S. На некоторых серверах по умолчанию включена проверка SSL сертификатов при подключении по FTP. Если ваш клиент при попытке подключения не может соединится, и выдает сообщение об неподтвержденном сертификате, попробуйте принудительно выключить SSL.
Для этого откройте (или создайте, если не существует) файл ~/.lftp/rc и запишите в него следующие строки. При запуске lftp читает этот файл для подключения пользовательских настроек:
set ssl:verify-certificate off set ftp:ssl-allow no set ftp:ssl-allow-anonymous no set ftp:ssl-auth TLS set ftp:ssl-copy-sid no set ftp:ssl-data-use-keys no |
Источник Записки *NIX Админа