Izzo Asked: 2018-11-06 08:17:36 +0800 CST2018-11-06 08:17:36 +0800 CST 2018-11-06 08:17:36 +0800 CST 您可以强制 SSH“watch”命令附加输出而不是覆盖吗? 772 我正在尝试通过腻子查看我的网络统计信息,并希望每隔一秒将统计信息写入日志文件。我已将 putty 配置为将他的 ssh 会话记录到日志文件中。但是,我正在努力发出一个腻子命令,该命令重复发出命令以提取统计信息。 我的第一种方法是使用“watch”命令。这可以很好地每秒执行命令,但是,每次更新时它都会覆盖终端输出,并且日志文件不会显示历史记录。 我的问题:如何配置 watch 命令以附加会话输出而不是重复覆盖行? ssh watch 2 个回答 Voted Best Answer Jeff Schaller 2018-11-06T11:05:43+08:002018-11-06T11:05:43+08:00 watch 实用程序使用 curses 来初始化和刷新屏幕,所以我认为你在上游游泳试图让它追加而不是覆盖。相反,我建议使用无限的 shell 循环: while : do ss -s ## for example sleep 60 ## for example done 这将以滚动/附加方式以您想要的间隔输出您想要的统计信息,并且也可以使用 Control-C 中断,就像这样watch。 它不提供手表的任何功能,例如突出显示差异、提供命令标题或在各种条件下退出。您可以通过手动发出测试命令和/或在命令的返回代码上添加测试来break解决其中的一些问题。 sla3k 2018-11-06T11:05:17+08:002018-11-06T11:05:17+08:00 为什么不使用简单的 shell 脚本反复运行命令并将输出写入文件。像这样的东西: #!/usr/bin/env bash while true; do free >> file.txt sleep 2 done free是在linux系统上输出空闲RAM的命令。使用您的命令更改它以运行。>>将输出附加到file.txt. 您可以根据需要将sleep选项更改n为秒数。 注意:此脚本将无限期运行,一旦您有足够的日志,您需要停止它 (CTRL + C)。
watch 实用程序使用 curses 来初始化和刷新屏幕,所以我认为你在上游游泳试图让它追加而不是覆盖。相反,我建议使用无限的 shell 循环:
这将以滚动/附加方式以您想要的间隔输出您想要的统计信息,并且也可以使用 Control-C 中断,就像这样
watch
。它不提供手表的任何功能,例如突出显示差异、提供命令标题或在各种条件下退出。您可以通过手动发出测试命令和/或在命令的返回代码上添加测试来
break
解决其中的一些问题。为什么不使用简单的 shell 脚本反复运行命令并将输出写入文件。像这样的东西:
free
是在linux系统上输出空闲RAM的命令。使用您的命令更改它以运行。>>
将输出附加到file.txt
. 您可以根据需要将sleep
选项更改n
为秒数。注意:此脚本将无限期运行,一旦您有足够的日志,您需要停止它 (CTRL + C)。