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