Введение
sftpclone программа резервного копирования на основе SFTP, которая работает аналогично rsync. На самом деле она копирует и обновляет все дерево от определенного каталога и ниже, одновременно управляя обновлением символических ссылок, времени доступа и т.д.
Установка
sftpclone написан на Python (поддерживает 2 и 3 версии) и может быть установлен через PIP:
# вы можете установить его в пользовательском, либо root пространстве
$ pip install sftpclone --user
$ sudo pip install sftpclone
Если PIP не установлен, то устанавливаем сначала его. Вы можете обратиться к соответствующему руководству за инструкциями.
После установки вы получите исполняемый файл sftpclone.
Настройка
Вы можете использовать опцию -h
для изучения всех возможных параметров программы, а так же узнать более подробную информацию на станице проекта.
$ sftpclone -h
usage: sftpclone [-h] [-k private-key-path]
[-l {CRITICAL,ERROR,WARNING,INFO,DEBUG,NOTSET}] [-p PORT]
[-f] [-a] [-c ssh config path] [-n known_hosts path] [-d]
[-e exclude-from-file-path]
local-path user[:password]@hostname:remote-path
Минимально необходимая конфигурация подразумевает указание только локальной папки для резервного копирования и удаленной конечной точки:
$ sftpclone local-path user[:password]@hostname:remote-path
Как обычно, использование паролей в открытым виде небезопасно. Поэтому вы должны указать свой закрытый ключ и использовать его вместо входа в систему с помощью пароля, как описано в Hetzner Docs.
Пожалуйста, обратите внимание: если вы не укажете пароль, sftpclone автоматически перейдет к аутентификации с открытым ключом.
Вы также можете указать список файлов, которые следует игнорировать, см. Информация Github.
Внимание: обязательно убедитесь, что вы выбрали необходимую удаленную папку. В процессе синхронизации будет удален любой файл, который не существует в локальной папке.
После того, как вы определились с опциями команды и конфигурацией sftpclone, которая вам подходит, вы можете настроить задание для cron, чтобы процесс резервного копирования происходил на регулярной основе. Вы можете сохранить скрипт либо в /etc/cron.daily
(ежедневно), /etc/cron.weekly
(еженедельно) или /etc/cron.monthly
(ежемесячно).
Crontab также может быть использован для установки задания резервного копирования в точно запланированное время, настроив соответствующее время в /etc/cron.d/
:
# /etc/cron.d/sftpclone
0 0 * * * root sftpclone local-path user[:password]@hostname:remote-path
[-k private-key-path] > /dev/null 2>&1
Ниже готовый для использования пример:
# /etc/cron.d/sftpclone
0 0 * * * root sftpclone / aldur@aldur-host:root_backup > /dev/null 2>&1
Заключение
Теперь у вас есть установленный и настроенный SFTPclone для выполнения регулярного резервного копирования.