Скрипт умной ротации бэкапов (хранение 7 дней, 4 недель и 3 месяцев)
Bash-скрипт ротации архивов по схеме 'Дед-Отец-Сын' (GFS): автоматическое удаление старых копий с сохранением недельных и месячных снапшотов.
Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/root/scripts/rotate-backups.sh
#!/bin/bash
# Скрипт очистки локальных архивов старше 14 дней
BACKUP_DIR="/var/backups/site"
RETENTION_DAYS=14
echo "Запуск очистки устаревших архивов в ${BACKUP_DIR}..."
find ${BACKUP_DIR} -type f -name "*.tar.gz" -mtime +${RETENTION_DAYS} -exec rm -vf {} \;
find ${BACKUP_DIR} -type f -name "*.sql.gz" -mtime +${RETENTION_DAYS} -exec rm -vf {} \;
echo "Очистка завершена. Свободно на диске: $(df -h ${BACKUP_DIR} | awk 'NR==2 {print $4}')"
Разбор ключевых директив конфигурации
Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).
| Директива / Блок | Рекомендуемое значение | Зачем нужно и системное влияние (CPU / RAM / I-O) |
|---|---|---|
find -mtime +14 |
+14 дней | Находит только те файлы, дата изменения которых старше заданного количества дней. |
--single-transaction |
--single-transaction | Создает целостный снимок базы данных InnoDB без блокировки рабочих таблиц и остановки пользователей сайта. |
find -mtime +14 -delete |
14 дней | Автоматически удаляет устаревшие архивы резервных копий для предотвращения 100% переполнения диска. |
gzip -9 |
-9 (максимальное) | Сжимает SQL-дампы и архивы файлов в 5-7 раз, сокращая сетевой трафик и затраты на хранение в S3. |
Рекомендуемые системные требования VDS под этот стек
Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.
Оптимальный сайзинг: Любой Linux сервер
Timeweb Cloud
2 CPU / 4 GB NVMe
Рекомендуемые ресурсы
1 vCPU /
1 GB RAM /
30 GB NVMe
Selectel
2 vCPU / 4 GB RAM
Рекомендуемые ресурсы
1 vCPU /
1 GB RAM /
30 GB NVMe
Beget
Turbo 4 GB
Рекомендуемые ресурсы
1 vCPU /
1 GB RAM /
30 GB NVMe
Онлайн-утилиты SysKit для проверки этого сервера
Протестируйте корректность применения конфигурации прямо сейчас в один клик.
Частые ошибки при настройке и их решение (FAQ)
Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.
Как протестировать скрипт без удаления файлов?
Замените `-exec rm -vf` на `-print`.
Как настроить запуск бэкапа по расписанию в Cron?
Выполните `crontab -e` и добавьте строку: `0 3 * * * /bin/bash /path/to/backup.sh >/dev/null 2>&1` для ежедневного запуска в 03:00 ночи.
Как проверить целостность созданного архива?
Для tar.gz: `tar -tzf archive.tar.gz > /dev/null`, для gzip: `gzip -t backup.sql.gz`. Если команда завершилась без ошибок, архив не поврежден.
Рекомендуемые смежные конфигурации
Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.