А как ты снимаешь дамп postgres?
Итак, настраиваем автоматическое бэкапирование бд, с блек-джеком и логами.
В определённый момент пришёл к достаточно простому способу, скрипт в кроне такого вида:
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.








Комментарии