Наверх

Резервное копирование сайта с удаленного сервера по расписанию. Часть 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 Админа

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

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