Как настроить автоматический бэкап сервера с сохранением 10 последних копий
Как настроить автоматический бэкап сервера с сохранением 10 последних копий
Многие администраторы делают бэкапы вручную или используют примитивные плагины, которые заполняют диск гигабайтами файлов. Я покажу, как настроить умную систему бэкапов, которая хранит только последние 10 копий и делает инкрементальные архивы.
Скрипт с ротацией
Вот готовый Bash-скрипт, который я использую на всех своих серверах:
#!/bin/bash BACKUP_DIR="/home/backups" WORLD_DIR="/home/minecraft/world" MAX_BACKUPS=10 DATE=$(date +%Y%m%d_%H%M%S) # Останавливаем сохранение мира screen -S minecraft -p 0 -X stuff "save-off^M" screen -S minecraft -p 0 -X stuff "save-all^M" sleep 5 # Создаём архив tar -czf "$BACKUP_DIR/backup_$DATE.tar.gz" -C /home/minecraft world # Включаем сохранение обратно screen -S minecraft -p 0 -X stuff "save-on^M" # Удаляем старые бэкапы ls -t $BACKUP_DIR/backup_*.tar.gz | tail -n +$((MAX_BACKUPS+1)) | xargs rm -f
Настройка cron для автоматического запуска
Добавь в crontab: 0 */6 * * * /home/minecraft/backup.sh — бэкап будет делаться каждые 6 часов. Для более частых бэкапов можно поставить 0 */2 * * *.
Инкрементальные бэкапы
Для экономии места можно использовать инкрементальные архивы с помощью rsync: rsync -a --link-dest=$BACKUP_DIR/latest /home/minecraft/world $BACKUP_DIR/backup_$DATE. Это создаёт жёсткие ссылки на неизменённые файлы, экономя до 70% места.
Загрузка в облако
Добавь в конец скрипта загрузку на облачный диск. Например, через rclone: rclone copy $BACKUP_DIR/backup_$DATE.tar.gz gdrive:backups. Это сохранит бэкап даже в случае полной гибели сервера.
Протестируй восстановление на тестовом сервере, чтобы убедиться, что бэкапы работают корректно. Лучший бэкап — тот, который ты проверил лично.
💬 Комментарии (0)
🔒 Войдите, чтобы оставить комментарий
😊 Пока нет комментариев. Будьте первым!