Администрирование

Резервное копирование

Стратегии и инструменты резервного копирования

Стратегия резервного копирования

Правило 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 --restore

Borg 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