0

我每天都在尝试运行一个 cronjob 来备份我的数据库。我通过登录到 root 并执行创建了 cronjob crontab -e,然后粘贴到我的命令中:

* * * * * /bin/bash -l -c 'cd /var/lib/postgresql && sudo -u postgres pg_dump db_development -O -f "/var/lib/postgresql/backup/db-`date +\%Y-\%m-\%d\\%k:\%M:\%S`.sql"' > /var/lib/postgresql/log/cron.log 2>&1

这非常烦人,因为如果我在终端中使用 postgres 用户或 root 运行该命令,它就可以完美运行。但是,我根本没有从 cronjob 任务中得到任何数据。日志文件为空白,并且从未创建备份文件。

我已经尝试解决这个问题 10 多个小时,但我没有想法。任何帮助表示赞赏。谢谢。

4

2 回答 2

1

很可能是环境问题。检查 shell 中的任何数据库环境设置。

您还可以将您的 cron 命令行包装在一个脚本中(并从 cron 调用该脚本)。然后,您最初可以让脚本转储环境(这样您就可以看到缺少的内容),最终让它设置正确的环境。vars 使其工作。

于 2012-10-25T01:08:22.917 回答
0

虽然您可能在那里遇到环境问题,但这样一个长命令可能最好放在从 cron 调用的单独脚本中。

于 2012-10-25T01:09:18.013 回答