Bash-скрипт для бэкапа сайта/сервера с ротацией |
![]() |
Добавил(а) microsin |
Это простой скрипт [1], который можно легко модифицировать для ваших нужд, чтобы реализовать бэкап сервера с ротацией архивов. Для синхронизации этот скрипт использует ssh и rsync [3]. Скрипт был полностью переписан заново, старая версия доступна по ссылке [2]. Скрипт умеет следующее: ● Ежедневный, еженедельный, месячный backup с настройкой количества сохраняемых архивов. ● Режимы архивирования только локально (backup to local only), локально плюс на сетевое хранилище (local + remote) и только на сетевое хранилище (remote only). ● 4 разных скрипта бэкапа: - бэкап файлов с компрессией zip. ● Безопасный backup с соединением SSH. Пока не реализовано email-оповещение, которое было в старой версии скрипта. [MySQL / MySQL Extrabackup / Zip File Backup: как использовать] ● Скопируйте скрипт в какое-нибудь место. ● Отредактируйте параметры скрипта, в частности опции BACKUP_RETENTION_, чтобы настроить ротацию / количество нужных бэкапов: # Идентификационные данные MySQL:
USER=backupPASS=backup DBNAME=project_sql # Куда делать бэкап локально:
BACKUP_DIR="/root/backup" # Куда делать бэкап на сетевом хранилище:
DST_HOST="user@host" REMOTE_DST_DIR="/root/backup" # Настройка ротации архивов:
BACKUP_DAILY=true # если установить в false, то ежедневного бэкапа не будет BACKUP_WEEKLY=true # если установить в false, то еженедельного бэкапа не будет BACKUP_MONTHLY=true # если установить в false, то ежемесячного бэкапа не будет BACKUP_RETENTION_DAILY=3 BACKUP_RETENTION_WEEKLY=3 BACKUP_RETENTION_MONTHLY=3 ● Проверьте работу скрипта, что все работает правильно: ./mysql-backup-script.sh ● Настройте задание для планировщика (cron) на запуск скрипта ежедневно в нужное время: 00 03 * * * backup.sh ● Проверьте еще раз результат бэкапа. Сделайте pull request в репозиторий git [1], если найдете проблему. [Ссылки] 1. Bash Backup Rotation Script. |