shell top命令未显示COMMAND的完整路径

o2gm4chl  于 2023-02-24  发布在  Shell
关注(0)|答案(1)|浏览(357)

我在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”稍长时,省略其输出。
有什么解决办法吗?我很感激任何想法。谢谢。

nhn9ugyo

nhn9ugyo1#

当不打印到常规文件且不是终端(>> "$TOPLOG")时,top将输出截断为80列的标准终端宽度。
如果您的top具有-w开关,请添加-w 512以获得更大的最大宽度。

相关问题