linux crontab 执行shell 打印不出结果

linux crontab 执行shell 打印不出结果

场景:

* * * * * sh /usr/shell/demo.sh

demo.sh

#!/bin/sh

source /etc/profile

echo "say Hi"

执行的log

(root) CMD (sh /usr/shell/demo.sh)

MAIL (mailed 7 bytes of output but got status 0x004b#012)

这是咋回事?? 为啥不执行???


回答:

脚本进程只是继承了运行它的TTY。当手动运行它时,它会继承运行shell命令的TTY(终端)

对cron来说, 甚至没有 TTY。所以,没有TTY被继承。也就没有标准输入输出供使用, 一般是重定向到文件来实现日志输出.


回答:

在/var/log/cron 打印的是 crontab的进程日志,真正想要看到shell脚本打印的结果,需要重定向到日志目录进行查看

* * * * * cd  /usr/shell/ && sh demo.sh >> /usr/shell/logs/error.log 2>&1

以上是 linux crontab 执行shell 打印不出结果 的全部内容, 来源链接: utcz.com/a/162634.html

回到顶部