Скрипты для управления и резервного копирования MySQL/PostgreSQL
- Установка и настройка сервера MySQL/PostgreSQL: деплой нового сервера.
- Создание дампов баз данных по расписанию.
- Ротация бекапов: поиск и удаление старых дампов.
- Cинхронизация файлов бекапа с удаленным ftp-хранилищем.
- Отправка e-mail уведомлений через SMTP-сервер.
- Отправка сообщений в Telegram любому пользователю.
- Режим отладки: запись выполнения любой команды в скриптах.
- Общий файл конфигарации: определение констант.
Клонируем репозиторий:
git clone https://github.com/olegbukatchuk/db_suite
и прописываем значения переменных и констант в конфиге config.sh, а также в файле action/email.sh для отправки отчётов на e-mail.
user@host:~$ /path/to/db_suite/postgresql/postgresql_backup.sh
Проверка наличия директории для хранения бекапов...
OK
Идёт создание дампа БД...
Загружено: 623MiB 0:00:20 [30.5MiB/s] [ <=> ]
OK
Идёт поиск и удаление старых дампов БД...
ОК
Проверка наличия задания в Cron'e...
0 1 * * * /path/to/db_suite/postgresql/postgresql_backup.sh
OK
Все скрипты умеют работать, как с локальным, так и с сетевым сокетом, поэтому задание можно запускать не только на сервере, где находиться база данных, но и на удалённом хосте.
Не забудьте при необходимости повторения процедуры поставить задание в планировщик у себя на сервере.
Ставим скрипт на выполнение (из консоли) в 1 час 00 минут после полуночи ежедневно:
crontab -e
# Добавляем в конец файла наше задание
0 1 * * * /path/to/db_suite/postgresql/postgresql_backup.sh
Сохраняем и перезапускаем Cron:
sudo service cron restart
Готово!
Есть вопрос или предложение? Свяжитесь со мной любым удобным вам способом из представленных у меня на сайте bukatchuk.com.