opened image

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

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

 

Почему резервное копирование — это важно?

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

  • Сократить риски утраты информации – бэкапы создаются по расписанию без вмешательства человека.

  • Обеспечить надежность – система выполняет бэкап в установленное время, что исключает человеческие ошибки.

  • Сэкономить ресурсы – автоматический режим копирования снижает нагрузку на администраторов и пользователей, избавляя от рутинной и не всегда простой работы.

  • Скорость возврата утраченных данных – если случился сбой, то все утраченные данные восстановить намного проще, нежели делать это вручную.

     

Почему rsync?
 

Существует множество бэкап-решений, но rsync является одним из самых удобных и мощных благодаря следующим преимуществам:

  1. Эффективность – делает копии лишь редактируемых документов. Это сокращает объем передаваемой информации, ускоряя рабочий процесс.

  2. Гибкость – поддерживает локальное копирование, а также поддерживает удаленный формат через SSH.

  3. Контроль версий – позволяет создавать инкрементные и дифференциальные копии.

  4. Экономия ресурсов – в процессе работы сервер нагружается минимально.

  5. Простота настройки – легко интегрируется с cron для автоматического выполнения заданий.

     

Какую роль играет cron?

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

  • Ежедневное, еженедельное или ежемесячное копирование без вмешательства пользователя.

  • Гибкую настройку расписания для разных типов файлов и серверов.

  • Оповещения о состоянии проведенного копирования (успехе или неудаче), помогая контролировать процесс.

Данный материал позволит разобраться в пошаговой настройке автобэкапа с применением 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="[email protected]"
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. Мониторинг и уведомления
    Не забывайте про важность наблюдения за исправностью процессов автокопирования. Упростить сей процесс можно с помощью настройки оповещений о статусе копирование. Вы будете получать уведомления о сбое или успехе бэкапа. Ведение логов также крайне важно для мониторинга системного состояния.

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