我在/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或其他任何东西?我昨晚试图运行它,但它没有用。
答案 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