![使用 top 命令的 cron 脚本和 TERM 定义问题](https://linux22.com/image/559451/%E4%BD%BF%E7%94%A8%20top%20%E5%91%BD%E4%BB%A4%E7%9A%84%20cron%20%E8%84%9A%E6%9C%AC%E5%92%8C%20TERM%20%E5%AE%9A%E4%B9%89%E9%97%AE%E9%A2%98.png)
我在执行 cron 进程来检查服务器当前 CPU 使用情况时遇到问题。
我的脚本以此开头:
top -c -n 1 -u www-data > /tmp/kill-cpu
我可以在控制台中毫无问题地执行,但在 cron 中我得到了
顶部:tty 获取失败
如果我使用 -b 选项
top -b -n 1
我明白了
‘dumb’:未知的终端类型。
我使用 xterm 作为 TERM
谢谢你的帮助:)
Lito。
解决方案:我能够通过以下方式解决问题:
ln -s /lib/terminfo/d/dumb /usr/share/terminfo/d/dumb
答案1
您可以尝试以下方法:
TERM=vt100 top -b -n 1
这将设置 TERM 变量以与“top”命令一起执行。
但您的根本问题是您的 termcap 数据库不完整或损坏。我没有 Debian 机器可以查看,但在 Ubuntu 机器上,“愚蠢的”termcap 信息位于文件 /usr/share/terminfo/d/dumb 中。此文件是 Ubuntu 8.04 和 10.04 上 ncurses-base 包的一部分。在 RHEL 上,它是 ncurses 包的一部分。也许您的安装只是缺少这个文件?