Crontab脚本未更新postgresql数据库;在终端中运行该命令将更新数据库

Crontab脚本未更新postgresql数据库;在终端中运行该命令将更新数据库,postgresql,cron,Postgresql,Cron,我有一个远程数据库,我想每天复制两次到本地数据库。在命令行上运行时 ssh abc@ip_address 'pg_dump --clean -Z 9 -U user remote_db' | zcat | psql local_db 我成功地获得了数据库的本地副本 在我的crontab文件中,我有- 0 10 * * * ssh abc@ip_address 'pg_dump --clean -Z 9 -U user remote_db' | zcat | psql local_db 0 1

我有一个远程数据库,我想每天复制两次到本地数据库。在命令行上运行时

ssh abc@ip_address 'pg_dump --clean -Z 9 -U user remote_db' | zcat | psql local_db
我成功地获得了数据库的本地副本

在我的crontab文件中,我有-

0 10 * * * ssh abc@ip_address 'pg_dump --clean -Z 9 -U user remote_db' | zcat | psql local_db

0 14 * * * ssh abc@ip_address 'pg_dump --clean -Z 9 -U user remote_db' | zcat | psql local_db

MAILTO="user@example.com"

我在命令行上收到一个通知,说我收到了新邮件,但数据库没有更新。我不确定我做错了什么。

“我的crontab”-你指的是
/etc/crontab
。还是
/var/spool/cron/crontab/
中的某些内容?这两个案例是否可能在不同的用户下执行?感谢Amadan,没有/etc/crontab或/var/spool/cron/crontab/file。我不认为它们是在不同的用户下执行的,这个本地主机上只有一个用户。如果您在任何类型的Unix上,几乎可以肯定您有自己的用户帐户,
root
(和一堆其他系统帐户)。您可以检查
whoami
用户是谁(通过在“您的crontab”中执行它)。如果使用其他用户执行,
ssh
将找不到您的身份文件(
id\u rsa
或您为该
ip\u地址设置的任何内容)。是的,谢谢,您是正确的,我的本地主机用户与我的远程用户不同,如果这是问题,你有解决这个问题的建议吗?邮件中应该有一些出错的细节。我猜ssh密钥有问题,或者psql不在路径中。尝试在crontab中添加psql的完整路径,因为这是最容易进行的更改。