Ну что, пошла жара. Первый пост для #балансбатл, ставим котиков, комментируем.
А как ты снимаешь дамп postgres?
🔤🔤🔥🔤🔤🔤🔤🔤🔤🔤🔤🔤6️⃣3️⃣
Итак, настраиваем автоматическое бэкапирование бд, с блек-джеком и логами.
Периодически возникает такая задача, проектов много, нужно автоматически снимать дампы. В случае чего слать уведомления и дебажить проблемы в случае их присутствия.
В определённый момент пришёл к достаточно простому способу, скрипт в кроне такого вида:
DATE=$(date '+%Y-%m-%d')
echo "save dump db"
pg_dump -h <ip> -p <port> -U <user> -v -F c -f db_$DATE.tar.gz <db name> 2> /opt/backup-db/dump_log_$DATE && [[ $? -eq 0 ]] && curl -i -X \
GET "https://api.telegram.org/bot<bot id>:<bot token>/sendMessage?chat_id=<chat id>&text=Дамп базы данных снят успешно, на сервере <servername>" \
|| curl -i -X GET "https://api.telegram.org/bot<bot id>:<bot token>/sendMessage?chat_id=<chat id>&text=Во время снятия дампа произошла ошибка. Смотри лог на сервере <servername>"
Собственно, что он делает:
- Ну, естественно, снимает дамп бд, вывод процесса кладёт в определённую директорию, прикручивая к названию файла
$DATE.- В случае успеха
(&& [[ $? -eq 0 ]] &&) дёргает телеграм бота, чтоб он написал в заданный чат сообщение об этом.- В случае неуспеха (||, то есть если код выполнения не равен 0) - дёргает тот же бот чтобы он в чат сообщил об ошибке и где она произошла.
Ну и экономим место на дисках, после выполнения этого скрипта, запускаем:
find /opt/backup-db -type f -mtime +10 -delete
Это удалит все файлы в директории, старше заданного количества дней +1.
🛠 #балансбатл
—
✅ @bashdays ✅ @linuxfactory ✅ @blog