Сегодня разбирался с проблемой бэкапа PostgreSQL-базы под debian’ом. Понятно, что с помощью cron’а можно назначить регулярное выполнение скрипта, но вот незадача: и pg_dump, и pg_dumpall (будучи запущенными из-под root’а) всегда запрашивают пароль, который, конечно же, можно было бы передать явно, но тогда пришлось бы его хранить в открытом виде, что не есть гуд.
Но ведь есть unix-пользователь postgres, который при наличии в pg_hba.conf строчки:
local all postgres ident sameuser
не требует авторизации с localhost для выполнения операций с СУБД. Простенький скрипт:
#!/bin/sh
FNAME=`date "+%Y%d%Y%H%M%S"`.pgdump
/usr/bin/pg_dumpall --database=ИмяБазы --file=ПутьКЛогам/$FNAME
gzip ПутьКЛогам/$FNAME
затем
crontab -upostgres -e
а там:
0 * * * * ПутьКСкрипту/dump_pgsql.sh
и ежечасный бэкап работает.
Оригинал поста доступен
здесь