我如何从cron.d运行cronjob?

时间:2014-03-06 14:46:10

标签: postgresql cron crontab

我在/etc/cron.d中创建了一个名为'test_purge'的文件,其中包含:

00 04 * * * postgres /var/lib/pgsql/test.sh

这应该是每天凌晨4点运行test.sh,对吗?

test.sh有:

#!/bin/bash
psql -d kettle -c "TRUNCATE TABLE test;"

我是否应该做其他任何事情来让这次运行?我将cron.d中的'test_purge'添加到我的crontab或其他任何东西?我昨晚试图运行它,但它没有用。

1 个答案:

答案 0 :(得分:0)

您的cron文件和脚本似乎是正确的。有些事情要测试。

首先,确保脚本具有执行权限(特别是postgres用户):

$ chmod +x /var/lib/pgsql/test.sh

我还将其设为postgres用户为所有者:

$ chown postgres:postgres /var/lib/pgsql/test.sh

现在。确保在psql环境中映射PATH二进制文件,对于cron文件,您必须将PATH设置到文​​件中:

PATH=/usr/lib/pgsql/bin:/usr/local/bin/:/usr/bin/:...
00 04 * * * postgres /var/lib/pgsql/test.sh

最后,确保您可以通过检查用户邮件或将输出重定向到文件来以某种方式查看脚本输出,例如:

00 04 * * * postgres /var/lib/pgsql/test.sh > /tmp/test.log 2>&1