Linux. Резервное копирование средствами rsync

Для резервного копирования данных использую связку rsync и cron. Rsync умеет работать как локально, так и с удаленными серверами. В рамках данной статьи будет рассмотрен вариант локального использования.

Задача

На сервере с Debian организовать автоматическое резервное копирование на файловом сервере. Хранить одну инкрементальную копию, при удалении файлов в каталоге источнике файлы в резервной копии не удалять!

Решение

rsync

Как писал выше, будем использовать rsync. Описания всех параметров давать не буду, благо в интернетах полно статей с справочной информацией, разберем только используемые:

  • -a — архивный режим, с сохранением прав, владельцев, дат и ссылок;
  • -v — режим подробного вывода хода выполнения;
  • -h — удобочитаемый вариант вывода.

Будем копировать содержимое каталога /mnt/POINT_01/media/photos в каталог /mnt/POINT_02/BackUp/media/, собрав параметры и каталоги получаем команду

# rsync -avh /mnt/POINT_01/media/photos /mnt/POINT_02/BackUp/media/

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

cron

Для решения текущей задачи запускать демон rsync смысла нет, обойдемся cron. Для этого в каталоге /usr/local/bin (именно он предназначен для хранения пользовательских скриптов) создадим файл cron_local_backup.sh

# nano /usr/local/bin/cron_local_backup.sh

В файле напишем получившуюся выше команду:

#!/bin/bash

rsync -avh /mnt/POINT_01/media/photos /mnt/POINT_02/BackUp/media/

Раз задание будет выполняться по расписанию, то флаги -vh можно опустить, но я оставляю на случай ручного выполнения скрипта(на самом деле cron будет писать в почту сообщения об выполнении задания и его листинге).

Сохраним файл и сделаем его исполняемым:

# chmod +x /usr/local/bin/cron_local_backup.sh

Остается добавить файл в cron, для этого выполняем команду:

# crontab -e

и добавляем команду для выполнения по расписанию.

0 3 * * * /usr/local/bin/cron_local_backup.sh

Задание будет выполняться каждый день в 3 часа ночи.

Так выглядит простейшая настройка резервного копирования в рамках одной машины. Как варианты развития можно добавить:

  • Хранение нескольких копий(Дневные, недельные, месячные);
  • Оповещение о результатах выполнения по электронной почте(на самом деле cron будет писать в почту сообщения об выполнении задания и его листинге);
  • Выполнение резервного копирования на удаленный сервер.

Источники:

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

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