Простое резервное копирование через RSYNC на файловое хранилище

Настройка резервного копирования rsync

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

Для работы вам понадобятся следующие инструменты:

  1. Программное обеспечение RSYNC
  2. Любой консольный текстовый редактор (в командах в статье мы используем nano)
  3. Любой FTP клиент для доступа к нашему файловому хранилищу

Воспользуйтесь следующей командой для установки rsync:

Debian/Ubuntu

apt-get install rsync (либо apt install rsync)

Centos

yum install rsync

Сгенерируйте rsa ключ для авторизации и выполнения операций без пароля следующей командой (под root пользователем):

ssh-keygen -t rsa -b 4096

Если у вас уже есть rsa ключ в директории /root/.ssh/ , то пропустите этот пункт.

Далее нужно взять данные из файла /root/.ssh/id_rsa.pub (из публичного ключа):

cat /root/.ssh/id_rsa.pub

Подключитесь через любой FTP клиент на своём компьютере (например, FileZilla) к файловому хранилищу c1-ftp1.netpoint-dc.com используя свой логин и пароль. После авторизации пройдите в директорию .ssh и создайте файл со следующим именем — authorized_keys .

Скопируйте вывод содержимого на своем сервере из файла /root/.ssh/id_rsa.pub и введите его в файл authorized_keys на файловом хранилище. Сохраните файл. Вся добавленная информация должна быть в одну строку, никаких отступов и переходов добавлять не нужно.

На сервере выполните подключение по SFTP к файловому хранилищу для проверки

sftp name@c1-ftp1.netpoint-dc.com 
(вместо name укажите ваш логин)

При подключении подтвердите принятие сертификата. Всё работает? Идем дальше.

В директории /opt создайте файл с именем backup.sh и поместите в него следующий текст

nano /opt/backup.sh
#!/bin/bash
HOST=c1-ftp1.netpoint-dc.com
USER=name
rsync -avz  -H --backup --recursive --delete  /etc  $USER@$HOST:/_data/

В переменной «USER=» вместо «name» укажите ваш логин. В последней строке вместо «/etc» укажите директорию с файлами и папками, которую хотели бы сохранить на файловом хранилище. В примере указана директория в которой хранятся конфигурационные файлы. Вы можете добавить несколько директорий для резервного копирования и тогда ваша команда будет выглядеть так:

 rsync -avz -H --backup --recursive --delete  /etc /root /var/www  $USER@$HOST:/_data/ 

Укажите свои директории для резервного копирования.

Предоставьте права на выполнение для файла скрипта резервного копирования следующей командой:

chmod +x /opt/backup.sh

Теперь нужно настроить расписание для запуска скрипта резервного копирования. Перейдите в редактор cron следующей командой:

crontab -e

и добавьте следующую строку

0 1 */2 * *  bash /opt/backup.sh

Сохраните запись. Скрипт будет запускаться каждый четный день в 1 час ночи. Будет происходить синхронизация данных с сервера на файловое хранилище через rsync.

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