我想用来nohup
定期记录top
(每 15 秒)的输出。为此,我使用 SSH 登录服务器,执行以下命令,然后再次注销:
nohup top -b -c -d15 &
Run Code Online (Sandbox Code Playgroud)
该-c
标志提供有关命令的附加信息,但在生成的nohup.out
文件中,此信息被剪切为 82 个字符。
所以,而不是这样的输出:
10484 daemon 20 0 68924 5556 2292 S 0.0 0.0 0:00.06 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -k start
Run Code Online (Sandbox Code Playgroud)
...nohup.out
它看起来像这样:
10484 daemon 20 0 68924 5556 2292 S 0.0 0.0 0:00.06 /opt/CollabNet_Subv
Run Code Online (Sandbox Code Playgroud)
如何防止nohup
修剪结果top
?
您需要top
使用-w
参数指定应使用的输出宽度(最多 512 列):
nohup top -b -c -d15 -w512 &
Run Code Online (Sandbox Code Playgroud)
如果你的版本top
不支持-w
,使用COLUMNS
环境变量也可以达到同样的效果:
COLUMNS=512 nohup top -b -c -d15 &
Run Code Online (Sandbox Code Playgroud)
正如schily所解释的,由于top
在这种情况下不输出到终端,它无法确定要使用的终端宽度并回退到安全默认值。