linux - CRON 进程记录的 "tput: No value for $TERM and no -T specified "错误

标签 linux shell unix cron tput

我们有一个由 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/

相关文章:

ios - ios中的Web服务

shell - 通过 sed 管道输出但保留退出状态

linux - 将行添加到文件末尾 - 使用 for 循环 - linux 脚本

file - 在 Linux 中将一些文本附加到多个文件的末尾

c++ - 不能在 64 位 Linux 上重载 << 运算符

linux - 在 Linux/X11 上的 Qt 中,如何解决主窗口排序问题?

linux - 如何在 bash 中传递自定义脚本?

linux - AWK 初级条形图/直方图

linux - Bash、Shell、UXTerm 和终端之间的区别

linux - 如果 ISR 在 Linux 中挂起会怎样?