0

Бэкап данных в автоматическом режиме с применением rsync и cron

Этап 1. Инсталляция rsync

rsync представляет из себя инструмент быстрого и эффективного копирования документов и директорий, поддерживающая инкрементное обновление, удаленную синхронизацию через SSH и исключение файлов. Она предустановлена на различных дистрибутивах Linux. В случаях отсутствия утилиты установку можно выполнить вручную.

Установка rsync на распространенных площадках Linux

Отталкиваясь от используемой системы, инсталляция выполняется с использованием следующих команд:

Debian, Ubuntu и производные

sudo apt update && sudo apt install rsync -y
Бэкап данных в автоматическом режиме с применением rsync и cron - 1



CentOS, RHEL, Rocky Linux, AlmaLinux

sudo yum install rsync -y

или (если используется dnf вместо yum):

sudo dnf install rsync -y

Arch Linux

sudo pacman -S rsync

macOS (через Homebrew)

brew install rsync

Проверка инсталляции

Завершив инсталляцию, есть возможность проверить версию утилиты:

rsync --version
Бэкап данных в автоматическом режиме с применением rsync и cron - 2


В случае успешной установки отобразится информация о версии и настройках rsync.

 

Этап 2. Базовая конфигурация rsync

Установив rsync можете применять его для проведения копирования как локально, так и в удаленном формате. Ниже рассмотрены базовые команды и параметры.

 

Локальное копирование

Синхронизация на одном сервере:

rsync -av /home/user/documents /backup/
Бэкап данных в автоматическом режиме с применением rsync и cron - 3


Где:

  • -a– состояние архива, которое сохранит права доступа, метки о времени и символические ссылки.
  • -v – обнародует информацию детально.

     

Бэкап через SSH на удаленный сервер

Чтобы отправить данные 

Для передачи файлов на другой сервер через SSH следует воспользоваться такой командой:

rsync -avz -e "ssh -p 22" /home/user/documents user@remote-server:/backup/

Где:

  • -z– сжимает информацию чтобы повысить скорость отправки.
  • -e "ssh -p 22"– применение SSH с указанием порта (если нестандартный).
  • user@remote-server:/backup/ – место сохранения на удаленном сервере.

     

Исключение документов и директорий

Чтобы не копировать определенные файлы, используйте –exclude:

rsync -av --exclude="*.tmp" /home/user/documents /backup/

Это исключит все доументы с расширением .tmp.

 

Удаление устаревших документов из целевой директории

Когда возникнет потребность избавиться от файлов на сервере, если они уже не существуют в исходной папке, добавьте

 --delete:
rsync -av --delete /home/user/documents /backup/

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


 

Шаг 3. Настройка cron

После настройки rsync можно автоматизировать процесс с помощью планировщика задач cron.
 

Открытие файла crontab

Для редактирования расписания запустите команду:

crontab -e

Откроется файл для добавления задач cron.
 

Создание задачи для ежесуточного бэкапа

Впишите следующую строку:

0 2 * * * rsync -avz --delete /home/user/documents /backup/ >> /var/log/rsync.log 2>&1
Бэкап данных в автоматическом режиме с применением rsync и cron - 4

Где:

  • 0 2 * * * – выполняет команду в 2:00 каждую ночь.
  • >> /var/log/rsync.log 2>&1– записывает лог выполнения в файл /var/log/rsync.log.
     

Автокопирование на удаленный сервер

0 3 * * * rsync -avz -e "ssh -p 22" /home/user/documents user@remote-server:/backup/ >> /var/log/rsync.log 2>&1

Это будет создавать копию каждую ночь в 3:00.
 

Проверка списка задач cron

Для того, чтобы проверить добавлена ли требуемая задача, выполните:

crontab -l

Это отобразит все запланированные задания текущего пользователя.

 

Шаг 4. Проверка работоспособности

 

После настройки cron важно проверить, работает ли автоматическое копирование.

Отследить лист задач в crontab

crontab -l

Ручной запуск тест-команды

rsync -av --delete /home/user/documents/ /backup/documents/

Отследить логи cron

cat /var/log/syslog | grep rsync



Настройка уведомлений

Добавим отправку email при ошибках:

MAILTO="admin@example.com"
0 3 * * * rsync -av --delete /home/user/documents/ /backup/documents/ >> /var/log/rsync.log 2>&1

Теперь при сбоях бэкапа на указанную почту будет отправляться сообщение.

 

Шаг 5. Рекомендации по безопасности

 

Использование ключей SSH

Чтобы совершать удаленный бэкап без пароля, сконфигурируйте должным образом ключи SSH:

ssh-keygen -t rsa
ssh-copy-id user@remote_host

Регулирование уровня допуска

Запретите допуск к резервным копиям от неавторизованных пользователей:

chmod -R 700 /backup/

Хранение нескольких версий бэкапов

Пользуйтесь

--backup 

и

--backup-dir

чтобы сберечь старые версии документов:

rsync -av --backup --backup-dir=/backup/old /home/user/documents/ /backup/documents/


 

Заключение

Автоматизированный бэкап с использованием rsync и cron является отличным способом обезопасить данные в случае возникновения критических проблем. В данной публикации мы осветили следующие моменты:

  • Инсталляция и настройку rsync.
  • Базовые и продвинутые команды синхронизации.
  • Использование cron с целью автоматического запуска дублирования данных.
  • Способы проверки работоспособности и логирования.
  • Основные меры безопасности информации.

     

Однако бэкап-конфигурация является всего первым шагом. Чтобы поддерживать высокую отказоустойчивость и гарантировать безопасность данных необходимо учитывать дополнительные аспекты:

  1. Регулярная проверка возможностей восстановления информации
    Недостаточно только сделать нужные копии. Необходимо еще проверять дубликаты на возможность восстановления. Это можно делать в тестовой среде, сверяя полученные файлы с оригиналами.
  2. Использование нескольких уровней резервного копирования
    Желательно хранить копии в разных местах:
    • Локальные копии на том же сервере.
    • Отдельный выделенный сервер или NAS для хранения данных.
    • Облачные сервисы для защиты от аппаратных сбоев.
  3. Использование ротации
    Сконфигурировав rsync с ключом –backup-dir, есть возможность хранения нескольких версий одного документа. Необходимо это для отката к предыдущей версии в случаях возникновения ошибок или непреднамеренного удаления файла.
  4. Обеспечение безопасности резервных копий
    • Шифрование перед передачей через SSH.
    • Регулирование уровня доступа через chmod и chown.
    • Использование надежных паролей и ключей SSH.
  5. Мониторинг и уведомления
    Не забывайте про важность наблюдения за исправностью процессов автокопирования. Упростить сей процесс можно с помощью настройки оповещений о статусе копирование. Вы будете получать уведомления о сбое или успехе бэкапа. Ведение логов также крайне важно для мониторинга системного состояния.

Руководствуясь данными советами, вы получите безопасную среду с минимальным риском потери данных.

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