命令在crontab中失败但在终端中有效
我已经检查过有关crontab故障的问题 。
我正在运行此命令来捕获htop
命令并以html格式创建它的快照( htop输出到人类可读文件 ):
/bin/echo q | /usr/bin/htop | /usr/bin/aha --black --line-fix > /tmp/htop.html
此命令在终端上正常工作,它不依赖于任何环境变量。 当我将此命令添加为cronjob时,它只生成一个空的html文件:
stdin
有什么理由不能通过
cron
捕获输出?
htop
需要将TERM
变量设置为例如xterm
以输出任何数据,因此只需在cron行中为xterm
设置此变量,例如:@hourly echo q|TERM=xterm htop|aha --black --line-fix >/tmp/htop.html
如果你想测试一个命令是否真的不依赖于任何环境变量 – 这通常会导致
cron
问题,请参阅你链接的问题 – 使用env -i
“以空环境开始”:$ env -i htop Error opening terminal: unknown.
结合
cron
的diff
和终端的环境,这是测试命令需要哪些变量的好方法。htop
实际上只需要TERM
:env -i TERM=xterm htop