我在Linux上编写了这个shell脚本,名为example.sh。
#!/bin/sh
TOPLOG=/tmp/top.log
date +%H:%M:%S >> ${TOPLOG}
top -b -c -n 1 |head -n 8 |tail -n 2 >> ${TOPLOG}
echo >> ${TOPLOG}
当我使用命令“sh /tmp/ www.example.com“运行它时example.sh,top.log中的文本如下所示
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17980 cybereas 20 0 1478m 73m 18m S 2.0 0.5 1360:59 /opt/cybereason/sensor/bin/cybereason-sensor
但是,当我使用此crontab运行此脚本时
*/1 * * * * sh /tmp/example.sh
top.log中的文本如下所示
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17980 cybereas 20 0 1478m 73m 18m S 2.0 0.5 1360:59 /opt/cybereason/sen
当“COMMAND”稍长时,省略其输出。
有什么解决办法吗?我很感激任何想法。谢谢。
1条答案
按热度按时间nhn9ugyo1#
当不打印到常规文件且不是终端(
>> "$TOPLOG"
)时,top
将输出截断为80列的标准终端宽度。如果您的
top
具有-w
开关,请添加-w 512
以获得更大的最大宽度。