crontab 运行的脚本不会产生数据

Script runned by crontab will no produce data

使用 Cacti,我正在尝试 运行 以下命令:

php poller.php > test.cfg

正如预期的那样,我得到了以下输出:

root@SLINUX01:[/usr/local/cacti]$tail -f test.cfg
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
05/12/2016 01:23:50 PM - POLLER: Poller[0] CACTI2RRD: /usr/bin/rrdtool update /usr/local/cacti/rra/stse01_traffic_in_14.rrd --template traffic_out:traffic_in 1463052230:2773678063:3900704413
05/12/2016 01:23:50 PM - POLLER: Poller[0] CACTI2RRD: /usr/bin/rrdtool update /usr/local/cacti/rra/stse01_traffic_in_15.rrd --template traffic_in:traffic_out 1463052230:1071486:1088742
05/12/2016 01:23:50 PM - SYSTEM STATS: Time:5.4128 Method:cmd.php Processes:1 Threads:N/A Hosts:3 HostsPerProcess:3 DataSources:9 RRDsProcessed:7
Loop  Time is: 5.41
Sleep Time is: 294.58
Total Time is: 5.42
^C

而且我的操作更新了。


现在使用 crontab,我做了以下:

*/5 * * * * cacti php /usr/local/cacti/poller.php > /home/cacti/test.cfg &>/home/cacti/test.cfg

但是当我在 cron 执行后进入 /home/cacti/test.cfg 时,我什么也没得到,但是 cron 运行 编写了脚本:

May 12 15:25:01 SLINUX01 CROND[19871]: (root) CMD (cacti php /usr/local/cacti/poller.php > /home/cacti/test.cfg &>/home/cacti/test.cfg)

这个问题的根源是什么?

提前致谢。

您的 cron 日志条目仅表示该命令已 尝试过 。它不保证命令已成功启动(权限问题?未设置环境变量?卸载文件系统?)。
您是否为可以从命令行成功 运行 命令的同一用户使用 cron table?
当您从命令行 运行 时,确切的路径是什么?
请注意,在 crontab 中,您尝试调用 php 而不提供其完整路径 - 这很可能是罪魁祸首。