我正在尝试创建一个 cronjob,以便在灾难性事件发生之前每晚备份我的数据库。看起来这个命令应该可以满足我的需求:
0 3 * * * pg_dump dbname | gzip > ~/backup/db/$(date +%Y-%m-%d).psql.gz
除了运行之后,它希望我输入密码。如果我从 cron 运行它,我不能这样做。我怎样才能自动传递一个?
最佳答案
在 pg_dump
将运行的帐户的主目录中创建一个 .pgpass
文件。
格式为:
hostname:port:database:username:password
然后,将文件的模式设置为 0600
。否则,它将被忽略。
chmod 600 ~/.pgpass
请参阅 Postgresql 文档 libpq-pgpass了解更多详情。
关于bash - 如何将密码传递给 pg_dump?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2893954/