Администрирование FreeBSD, Linux, ... Bash-скрипт для бэкапа сайта/сервера с ротацией Wed, November 13 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Bash-скрипт для бэкапа сайта/сервера с ротацией Печать
Добавил(а) microsin   

Это простой скрипт [1], который можно легко модифицировать для ваших нужд, чтобы реализовать бэкап сервера с ротацией архивов. Для синхронизации этот скрипт использует ssh и rsync [3]. Скрипт был полностью переписан заново, старая версия доступна по ссылке [2].

Скрипт умеет следующее:

● Ежедневный, еженедельный, месячный backup с настройкой количества сохраняемых архивов.

● Режимы архивирования только локально (backup to local only), локально плюс на сетевое хранилище (local + remote) и только на сетевое хранилище (remote only).

● 4 разных скрипта бэкапа:

   - бэкап файлов с компрессией zip.
   - скрипт rsync.
   - скрипт mysql.
   - скрипт mysql extrabackup.

● Безопасный 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.
2. Bash Backup Rotation Script - legacy.
3rsync: синтаксис, примеры использования.

 

Добавить комментарий


Защитный код
Обновить

Top of Page