我们有一个由 CRON 运行的 shell 脚本。 shell 脚本依次运行 python 脚本,该脚本从 FTP 服务器下载文件,然后在这些文件上运行 java 日志处理器。这个过程运行得很好,除了我继续收到 CRON 电子邮件,即使没有错误。至少,我认为没有错误。 cron 邮件有两行,其中一行是
tput: No value for $TERM and no -T specified
经过一番研究,我发现这与设置 $TERM 变量有关。我不确定,该怎么做。任何帮助,将不胜感激。谢谢!
最佳答案
cron 守护进程由“root”用户在它自己的 shell 中运行。默认情况下,cron 将附加发送给运行脚本的用户的系统邮件(这就是为什么您在系统邮件中看到发件人为“root”的原因)。 “用户”是您在设置 crontab 时登录的用户。该邮件将包含控制台和错误消息。在 Ubuntu 上,可以在 /var/mail/<username>
查看邮件文件.
如果没有$TERM
设置变量,cron 将发出 tput: No value for $TERM and no -T specified
邮件文件中的错误。要停止这些错误,请设置 $TERM
变量使用 TERM=dumb
(或您系统中的另一个可用终端,如 xterm
)在 crontab 中。 toe
命令将显示当前系统上的 terminfo 定义。如果缺少该命令,可以在 /usr/share/terminfo
中查看原始数据在大多数 Linux 系统上。
即使您已停止错误,您仍可能会收到带有控制台消息的附加系统邮件。随着时间的推移,该文件将像日志一样填满,因此您可能希望停止这些消息。要停止 cron 系统邮件,请设置 MAILTO
变量使用 MAILTO=""
所以你的 crontab 可能看起来像:
MAILTO=""
TERM=xterm
* * * * * sh /path/to/myscript.sh
您可以使用“crontab -l”查看 crontab(针对您登录的用户)。
关于linux - CRON 进程记录的 "tput: No value for $TERM and no -T specified "错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29979966/