Резервное копирование /etc
Директория /etc — это нервный центр любой Linux-системы. В ней хранятся все ключевые конфигурационные файлы: от настроек сети и веб-сервера до параметров пользователей и прав доступа. Потеря или повреждение этих файлов может полностью вывести сервер из строя.
Поэтому регулярное и правильное резервное копирование /etc — одна из первоочередных задач системного администратора. Давайте рассмотрим два надежных подхода к этой задаче: классический и современный.
Способ 1: Простой и надежный (ежедневный архив)
Этот метод заключается в создании полного архива директории /etc по расписанию. Это проверенный временем подход, который легко настроить.
Скрипт для резервного копирования:
Создадим простой bash-скрипт, который будет архивировать директорию и удалять старые копии.
#!/bin/bash
# Директория, куда будем сохранять бэкапы
BACKUP_DIR="/var/backup/etc"
# Количество дней, которое нужно хранить бэкапы
DAYS_TO_KEEP=360
# Создаем директорию для бэкапов, если она не существует
mkdir -p ${BACKUP_DIR}
# Формируем имя файла с текущей датой
BACKUP_FILENAME="etc-backup-$(date +%Y-%m-%d).tar.gz"
BACKUP_FULL_PATH="${BACKUP_DIR}/${BACKUP_FILENAME}"
# Создаем tar.gz архив директории /etc
tar -czf ${BACKUP_FULL_PATH} /etc
# Удаляем бэкапы старше DAYS_TO_KEEP дней
find ${BACKUP_DIR} -type f -mtime +${DAYS_TO_KEEP} -delete
echo "Резервное копирование /etc успешно завершено: ${BACKUP_FULL_PATH}"
Настройка расписания (cron)
- Сохраните скрипт в
/root/etc_backup.sh
и сделайте его исполняемым:
chmod +x /root/etc_backup.sh
- Откройте редактор cron:
crontab -e
- Добавьте строку для запуска скрипта каждую ночь в 3:00:
0 3 * * * /root/etc_backup.sh > /dev/null 2>&1
Плюсы:
- Простота и прозрачность.
- Легко восстановить состояние на определенный день.
Минусы:
- Не видно, какие именно файлы и строчки изменились между бэкапами.
- Если критическое изменение произошло в течение дня, вы узнаете о нем только из бэкапа прошлой ночи.
Способ 2: Продвинутый и рекомендуемый (контроль версий с Etckeeper)
- Etckeeper
- Etckeeper — это утилита, которая превращает вашу директорию /etc в полноценный Git-репозиторий (или репозиторий другой системы контроля версий).
- Главное преимущество Etckeeper в том, что он автоматически отслеживает изменения.
Он интегрируется с пакетными менеджерами (
apt
,dnf
,yum
) и создает коммит (точку сохранения) до и после установки, обновления или удаления любого ПО. Вы всегда будете знать, какое именно действие привело к изменению конфигурации.
Как настроить и использовать Etckeeper
Шаг 1: Установка
Для Debian/Ubuntu:
sudo apt update && sudo apt install Etckeeper
Для CentOS/Fedora/RHEL:
sudo dnf install Etckeeper
Шаг 2: Первая инициализация
Сразу после установки Etckeeper автоматически создаст Git-репозиторий в /etc,
выполнит базовую настройку и
сделает первый коммит. Вы можете проверить это командой:
sudo git -C /etc log --oneline
Шаг 3: Как это работает на практике?
Допустим, вы устанавливаете веб-сервер Nginx: sudo apt install nginx
.
Etckeeper автоматически сделает два коммита: один — прямо перед установкой, второй —
сразу после.
Теперь, если вы снова посмотрите историю, вы увидите новые записи.
Пример вывода лога:d1e7a6f (HEAD -> master) committing changes in /etc after apt run
a3b1c8f saving uncommitted changes in /etc prior to apt run
f9e1d0a Initial commit
Шаг 4: Просмотр изменений
Вы можете в любой момент посмотреть, что именно изменилось.
- Посмотреть список измененных файлов:
sudo git -C /etc status
- Посмотреть изменения в конкретном файле:
sudo git -C /etc diff nginx/nginx.conf
- Отменить изменения в файле, вернув его к последней сохраненной версии:
sudo git -C /etc checkout -- nginx/nginx.conf
Какой способ выбрать? Идеальный вариант — оба!
Эти два метода не исключают, а прекрасно дополняют друг друга:
- Etckeeper используется для ежедневного, детального контроля над изменениями. Он ваш "черный ящик", который фиксирует каждое действие и позволяет легко отследить причину поломки или откатить неудачную правку.
- Архивация по cron используется для создания полных снимков для долгосрочного хранения и аварийного восстановления. Эти архивы стоит периодически копировать на внешний, независимый носитель (другой сервер, облачное хранилище).
Такой двухконтурный подход обеспечивает максимальную защиту "мозга" вашей системы
Оставить комментарий