【发布时间】:2013-09-17 09:54:30
【问题描述】:
我每 30 分钟在 crontab 中添加一个脚本。该行如下:
*/30 * * * * root perl /root/perl.pl
上述脚本执行了系统命令“top”,并打印在日志文件中。
如果我手动运行它运行良好。但是在通过 crontab 运行它时,它并没有显示出想要的结果。请有人帮我解决这个问题。谢谢你。
上述perl脚本中的命令是:
$top = `sudo top`;
我得到的错误是:
sudo: sorry, you must have a tty to run sudo
我将命令从 sudo 更改为 visudo。但问题依然存在。
【问题讨论】:
-
roor命令是什么,为什么在perl前面? -
root 是以超级用户身份运行脚本。这有影响吗?
-
当脚本在命令行上运行但从 crontab 运行时失败时,它几乎总是环境。要么你的 crontab 中没有设置一个环境变量,要么你希望它在不同的目录中启动。
-
@cjm - 请您详细说明或至少给我一些提示如何解决它。谢谢。
-
转储
%ENV看看有什么不同。