I’m trying to create a cronjob to back up my database every night before something catastrophic happens. It looks like this command should meet my needs:
0 3 * * * pg_dump dbname | gzip > ~/backup/db/$(date +%Y-%m-%d).psql.gz
Except after running that, it expects me to type in a password. I can’t do that if I run it from cron. How can I pass one in automatically?
Create a
.pgpassfile in the home directory of the account thatpg_dumpwill run as.The format is:
Then, set the file’s mode to
0600. Otherwise, it will be ignored.See the Postgresql documentation libpq-pgpass for more details.