incrementalbackup

Условия необходимые для резервного копирования

Для возможности осуществления процесса копирования, на сервере с которого производится копирование архивных данных, необходима установка программы rsync. В свою очередь на сервере куда производится копирование данных должна быть установлена не только программа rsync, но и rdiff-backup.

Генерация ключей для возможности соединения серверов по протоколу «SSH»

Для начала необходимо убедиться, что на копируемом сервере разрешена авторизация по протоколу ssh при помощи ключей. Для этого в файле конфигурации /etc/ssh/sshd_config необходимо удалить, если этого не было сделано ранее, знак комментария # перед директивой PubkeyAuthentication yes. После чего перезапускаем сервис с помощью команды:

systemctl restart ssh

Затем открываем терминал сервера на который будут копироваться резервные данные, перемещаемся в скрытый каталог .ssh и даём команду создания резервного ключа:

ssh-keygen

Данная команда последовательно запросит имя создаваемого ключа, а затем предложит ввести пароль с подтверждением. Все диалоги с предложением ввода игнорируются простым нажатием клавиши «Ввод», за исключением предлога ввода имени ключа.

После ввода данной команды в текущем каталоге будут обнаружены публичный и приватный ключи с введённым нами при его создании именем, у публичного ключа при этом будет добавленно расширение .pub.

Подготовка резервируемого сервера к соединению

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

ssh-copy-id -i ~/.ssh/[имя ключа].pub [имя пользователя]@[имя копируемого сервера]

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

После экспорта ключа, подключение резервирующего сервера к резервируемому, будет происходить по ssh, без необходимости ввода пароля, по одной лишь команде:

 ssh -i ~/.ssh/[имя ключа] [имя пользователя]@[имя сервера]

Создание на резервирующем сервере структуры папок для резервных копий

Сначала создадим коренной каталог, для хранения структуры каталогов для резервирования:

mkdir backup

Затем в этом каталоге создадим три следующих каталога:

mkdir log var incremental 
  • Каталог log создаётся для хранения журналов работ по резервированию.
  • В каталоге var, в данном случае, будет храниться исходный образец целевого каталога резервируемого сервера.
  • Каталог incremental будет предназначаться для хранения всех изменений зеркала var, в хронологическом порядке.

Стоит уточнить, что для полного копирования функционала исходного сайта необходимо настроить репликацию базы данных «master — slave».

Так-же.

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

Резервирование данных

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

rsync --delete -e "ssh -i ~/.ssh/backup" --bwlimit=30000 -zauP [имя пользователя]@[имя резервируемого сервера]:/var/www var
  • Здесь аргумент —delete удаляет все данные, которые были удалены с предыдущего копирования на исходном сервере.
  • Аргумент -e «ssh -i ~/.ssh/backup» задаёт копирующему серверу способ подключения и ключ для этого.
  • Аргумент —bwlimit=30000 не обязательный и он устанавливает для копирующего сервера скорость передачи данных, он символизирует количество килобайтов в секунду.
  • Аргумент -zauP так-же не обязательный и он задаёт тонкие настройки при копировании. Более подробные инструкции по этому аргументу стоит посмотреть в специальной документации.
  • Завершающие аргументы команды [имя пользователя]@[имя резервируемого сервера]:/var/www var задают авторизацию при подключении к копируемому каталогу и реаположение копируемого материала на текущем копирующем сервере соответственно.

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

На этом шаге важно, не забыть установить бэкап-скрипт для копирования базы данных обрабатываемого нами сервера.

Запуск программы архивации данных

Следующим шагом, следует запуск архивации копированных данных:

rdiff-backup -v5 --print-statistics /var/www incremental/var/www

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

Настройка автоматического архивирования данных по расписанию

0    2    *    *    *    rsinc --delete -e "ssh -i ~/.ssh/backup" --bwlimit=30000 zauP ssh-backup@syoma.ru:/var/www/ > backup/log/rsinc-www-log-$(date +\%Y-\%m\%d).txt 2> backup/log/rsync-www-error-$(date +\%Y-\%m-\%d).txt
  • Второй аргумент задаёт время запуска инструкции в часах.
  • Далее , после установления расписания, инструкция почти повторяет команду описанную выше, при запуске резервирования данных, за тем исключением, что вывод записывается по указанному пути в файл журнала, и здесь в именах пользователя и сертификата безопасности показаны конкретные значенияю
0    3    *    *    *    rdiff-backup --remove-older-then 4W backup/incremental/var/www
  • Здесь так-же, как и в предыдущей инструкции заданно время ей выполнения.
  • Далее следует команда по удалению всех сохранённых данных, которым больше четырёх недель.
0    6    *    *    *    rdiff-backup -v5 --print-statistics /var/www incremental/var/www > backup/log/rsinc-www-log-$(date +\%Y-\%m\%d).txt 2> backup/log/rdiff-www-error-$(date +\%Y-\%m-\%d).txt
  • Инструкция имеет задание на запуск, аналогично предыдущим двум и очень схожа с первой инструкцией, за тем лишь исключением, что она не копирует содержимое копируемого сервера, а производит архивирование полученного результата с записью процесса в файл журнала, специально для этого предназначенного.

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

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

Введение

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

1. Создание резервных копий с помощью утилиты rsync

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

rsync -av --delete /path/to/source /path/to/destination

Эта команда копирует все файлы из /path/to/source в /path/to/destination, сохраняя структуру каталогов и обновляя только измененные файлы. Флаги -av указывают на режим архивирования, который сохраняет права доступа, временные метки и другие атрибуты файлов, и verbose, чтобы получить подробный вывод. Флаг --delete удаляет файлы из /path/to/destination, которых нет в /path/to/source.

2. Использование программного обеспечения для резервного копирования

Большинство дистрибутивов Linux предоставляют программное обеспечение для резервного копирования, которое облегчает создание и управление резервными копиями. Некоторые из популярных программ включают в себя Bacula, Duplicati, Back In Time и Déjà Dup. Эти программы обеспечивают графический интерфейс и могут автоматически создавать резервные копии в заданный период.

3. Использование облачного хранилища для резервного копирования

Еще один метод резервного копирования в Linux — использование облачных хранилищ. Облачные хранилища, такие как Google Drive, Dropbox, Amazon S3, предоставляют возможность сохранить ваши данные в удаленном и безопасном хранилище. Для работы с облачными хранилищами в Linux вы можете использовать утилиты, такие как rclone, которая позволяет синхронизировать данные между вашим компьютером и облачным хранилищем.

Заключение

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

От alex

Обучаемый.