为什么pg_dump没有在cron作业中获取密码?

时间:2014-07-02 23:45:42

标签: postgresql cron backup

我们正在使用cron job在ubuntu 12.04上备份postgres数据库。 pg_dump命令已添加到已运行备份sqlite的bash脚本中。命令是:

pg_dump -U postgres -Fc mydbname > /home/myback_$now   #$now append last 2 digits of date to file name

.pgpass文件是在与bash脚本相同的主目录中创建的:

localhost:5432:mydbname:postgres:mypassword

chmod 600 .pgpass

问题是生成了备份文件,但它们的大小都是0.在备份日志中,有一个错误:

pg_dump: [archiver (db)] connection to database "mydbname" failed: fe_sendauth: no password supplied

似乎{。{1}}未正确引用.pgpass中的密码。备份配置中可能缺少什么?感谢。

1 个答案:

答案 0 :(得分:1)

如果您在评论中说明,那么

sudo crontab -e

然后您正在编辑root的crontab,而不是您自己用户的crontab。

因此,将使用的主目录将是root的主目录(通常为/ root,但我不确定Ubuntu)。

虽然您没有明确说出来,但我猜您将.pgpass文件放在用户的主目录中。

以root身份运行pg_backup没有必要,甚至不是一个好主意,因此我建议将备份作业放在普通用户的crontab中。