bash - 如何将密码传递给 pg_dump?

标签 bash postgresql shell cron

我正在尝试创建一个 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/

相关文章:

arrays - Shell脚本数组

postgresql - Travis CI 忽略 Postgres 版本规范

iOS:向 IP 地址发出 shell 命令

python - 在脚本中启动脚本 - 如何修复/bin/sh : 1: filename. py: not found

android - 使用 adb 隐藏软键盘

巴什 : Assigning sed result in an array on shell script

bash - 如何更改Docker终端启动脚本?

bash - 我无法在 docker bash 终端中执行 netcat 命令?

postgresql - 多列中的 COUNT 个 NULL

python - SQLAlchemy 级联删除自动映射的通用数据模型架构