Администрирование
Резервное копирование
Стратегии и инструменты резервного копирования
Стратегия резервного копирования
Правило 3-2-1: храните минимум 3 копии данных, на 2 разных типах носителей, 1 копия должна быть вне офиса (облако или удалённый сервер).
Rsync — синхронизация файлов
Rsync — мощный инструмент для инкрементального копирования файлов.
# Базовое копирование
rsync -av /source/ /destination/
# С удалением лишних файлов в destination
rsync -av --delete /source/ /destination/
# На удалённый сервер через SSH
rsync -avz -e ssh /local/path user@server:/remote/path
# С исключением файлов
rsync -av --exclude='*.log' --exclude='.cache' /source/ /dest/
# Сухой запуск (показать что будет скопировано)
rsync -avn /source/ /destination/Полезные опции rsync
| Опция | Описание |
|---|---|
| -a | Архивный режим (сохраняет права, время, владельца) |
| -v | Подробный вывод |
| -z | Сжатие при передаче |
| -P | Показывать прогресс + возобновление |
| --delete | Удалять файлы в destination, которых нет в source |
| --exclude | Исключить файлы по шаблону |
| --backup | Создавать резервные копии изменённых файлов |
Timeshift — снимки системы
Timeshift создаёт снимки системы для быстрого восстановления.
# Установка
sudo apt install timeshift
# Запуск GUI
sudo timeshift-gtk
# Создание снимка из командной строки
sudo timeshift --create --comments "Before update"
# Список снимков
sudo timeshift --list
# Восстановление
sudo timeshift --restoreBorg Backup — дедупликация
Borg — современный инструмент с дедупликацией и шифрованием.
# Установка
sudo apt install borgbackup
# Инициализация репозитория
borg init --encryption=repokey /path/to/backup
# Создание архива
borg create /path/to/backup::archive-{now} /home /etc
# С исключениями
borg create --exclude '*.cache' --exclude '*.log' \
/path/to/backup::archive-{now} /home
# Список архивов
borg list /path/to/backup
# Восстановление
cd /restore/path
borg extract /path/to/backup::archive-name
# Удаление старых архивов (оставить 7 дней, 4 недели, 6 месяцев)
borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=6 /path/to/backupАвтоматизация с cron
# Редактировать crontab
crontab -e
# Ежедневный бэкап в 2:00
0 2 * * * /usr/local/bin/backup.sh
# Пример скрипта backup.sh
#!/bin/bash
DATE=$(date +%Y-%m-%d)
rsync -av --delete /home/ /backup/home-$DATE/
borg create /backup/borg::home-$DATE /home
find /backup/home-* -mtime +7 -deleteРезервное копирование баз данных
# PostgreSQL
pg_dump dbname > backup.sql
pg_dumpall > all_databases.sql
# MySQL/MariaDB
mysqldump -u root -p dbname > backup.sql
mysqldump -u root -p --all-databases > all_databases.sql
# Восстановление
psql dbname < backup.sql
mysql -u root -p dbname < backup.sqlЧто резервировать
- /home — пользовательские данные
- /etc — конфигурация системы
- /var/lib — данные приложений и БД
- /var/www — веб-сайты
- /opt — дополнительное ПО
- Список пакетов:
dpkg --get-selections > packages.txt