Рейтинг:0

Сценарий резервного копирования сервера Ubuntu

флаг co

Нужна помощь в настройке скрипта для резервного копирования моей системы.

Итак, у меня есть работающий сервер 20.04, время от времени, когда я делаю какие-то обновления/изменения, он что-то ломает, и я теряю время на исправление проблем. Сначала я думал об использовании RAID 1, но потом понял, что если я сломаю оригинал, у него будет такая же проблема.

Поэтому, немного подумав, я сделал dd-копию исходного диска (№1) на другой (№2) и оставил №2 подключенным, но не смонтированным. Сначала я думал оставить диск отключенным и с помощью загрузочного носителя сделать новую резервную копию dd ... Но это не кажется очень профессиональным. Поэтому я решил сделать скрипт, который монтирует жесткий диск № 2, вызывает rsync и, в конце концов, размонтирует.

Будет ли это работать? Диск представляет собой полную посекторную копию, и после этого момента изменения № 1 будут отражены в № 2 с помощью rsync.

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

Мне нужно смонтировать # 2, проверить, действительно ли он смонтирован (проверить, не пуста ли папка монтирования?), запустить rsync и записать полный журнал в файл, и в конце размонтировать. Это то, что у меня есть сейчас:

#! /бин/баш
# -- ПЕРЕМЕННЫЕ
MOUNT_DEV='/dev/sdb2'
MOUNT_FOLDER='/mnt/hdd_backup'
ИСТОЧНИК='/*'
НАЗНАЧЕНИЕ='/mnt/hdd_backup/'
LOG_FILE='/home/jnap/external/rsync.log'

echo 'Смонтировать резервный жесткий диск'
смонтировать $MOUNT_DEV $MOUNT_FOLDER
echo 'Монтирование завершено'

#Проверить, действительно ли он смонтирован? каталог не пустой? 
echo 'Запустить Rsync - DryRun только для проверки' 
rsync -aAHXv --dry-run --delete $SOURCE $DESTINATION --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*, /media/*,/lost+found,/snap,/home/jnap/external/*,var/lib/lxcfs/*} > $LOG_FILE
echo 'Завершена Rsync'

echo 'Размонтировать резервный жесткий диск'
монтировать -l $MOUNT_FOLDER
echo 'Размонтирование завершено'

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

Спасибо

sudodus avatar
флаг jp
С опцией `rsync` --delete` я бы сказал, что это сценарий синхронизации, а не сценарий резервного копирования. Возможно, вам следует подумать о `--backup` (и, возможно, `--backup-dir=`) также, чтобы сохранить *версии* файлов, которые были изменены или удалены.
флаг co
Это как альтернатива RAID, мне не нужны ни предыдущие версии, ни удаленные файлы. Мне просто нужна копия последней функциональной версии системы.
sudodus avatar
флаг jp
Понятно, тогда мне это кажется хорошим (но я не проверял и не изучал его очень подробно).Я использую `rsync`, поэтому я привык запускать его с «множеством» опций, и я думаю, что ваши опции выглядят нормально. Рекомендуется начать с пробного прогона и внимательно посмотреть на результат, прежде чем запускать реальный процесс копирования :-)
James S. avatar
флаг de
Это действительно похоже на то, что вы пытаетесь делать периодические снимки файловой системы, чтобы вы могли вернуться к моментальному снимку в случае аварии. Есть ли причина, по которой вы не можете использовать возможности моментальных снимков LVM?
флаг co
@Джеймс С. ничего не знаю о LVM... посмотрю. Спасибо
James S. avatar
флаг de
Существует инструмент под названием «Snapper», который может быть тем, что вы ищете: http://snapper.io/overview.html.
bac0n avatar
флаг cn
Я думаю, что исключение должно быть `--exclude={'/dev/*','/proc/*'}`, вам не нужно расширение glob
флаг co
@Джеймс С. уже видел этот инструмент, но пока я просто придерживаюсь rsync, когда у меня будет дополнительное время, я проверю снаппер, и если он соответствует моим потребностям, мне не нужны снимки, по крайней мере, я думаю, что они не нужны .. , В любом случае спасибо за вклад.
флаг co
@bac0n спасибо за информацию.
James S. avatar
флаг de
Я имею в виду, что вы описываете здесь не «резервные копии», а моментальные снимки.
флаг co
@Джеймс С. хорошо, это правильный термин :) Но основная цель - иметь резервную копию / снимок / копию системы только тогда, когда я решил, потеряв предыдущую ... Спасибо

Ответить или комментировать

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