gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 12:21:00 24 4
gpt4 key购买 nike

我们正在使用 cron 作业在 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

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

localhost:5432:mydbname:postgres:mypassword

还有 chmod 600 .pgpass

问题是生成了备份文件,但是备份文件的大小都是0,在备份日志中,报错:

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

pg_dump 似乎没有正确引用 .pgpass 中的密码。备份配置中可能缺少什么?

最佳答案

如果像您在评论中所说的那样

sudo crontab -e

那么你正在编辑 root 的 crontab,而不是你自己用户的 crontab。

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

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

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

关于postgresql - 为什么 pg_dump 没有在 cron 作业中获取密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24542823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com