SSH "watch"コマンドを使用して出力を上書きするのではなく強制的に追加できますか?

SSH "watch"コマンドを使用して出力を上書きするのではなく強制的に追加できますか?

パテを介してネットワーク統計を表示しようとしていますが、毎秒統計がログファイルに書き込まれたいと思います。 SSHセッションをログファイルに書き込むようにパテを設定しました。ところで、統計を抽出するコマンドを繰り返すputtyコマンドを出すのに苦労しています。

私の最初の方法は "watch"コマンドを使用することでした。これは毎秒コマンドを実行するのに効果的ですが、各更新でターミナル出力を上書きし、ログファイルに履歴が表示されません。

私の質問:行を繰り返し上書きするのではなく、セッション出力を追加するようにwatchコマンドをどのように設定しますか?

答え1

時計ユーティリティ呪いを使って画面を初期化して更新するだから、私はあなたが現在に合わせて泳ぎ、上書きするのではなく追加するように努力していると思います。代わりに無限シェルループを使用することをお勧めします。

while :
do
  ss -s     ## for example
  sleep 60  ## for example
done

所望の間隔で所望の統計をローリング/追加方式で出力し、watchこのようにCtrl-Cを押して中断することもできます。

もちろんいいえ違いの強調、コマンドタイトルの提供、さまざまな条件での終了など、時計のすべての機能を提供します。テストコマンドを手動で実行するか、ループの外側にコマンドの戻りコードのテストを追加することで、breakこれらの問題のいくつかを解決できます。

答え2

単純なシェルスクリプトを使用してコマンドを繰り返し実行し、出力をファイルに書き込むのはどうですか?このような:

#!/usr/bin/env bash
while true;
do
 free >> file.txt
 sleep 2
done

freeLinuxシステムから空きRAMを出力するコマンドです。実行コマンドを使用して変更します。>>出力はに追加されます。file.txt必要に応じて、sleepこのオプションをn秒に変更できます。

注:このスクリプトは無期限に実行され、ログが十分な場合は停止する必要があります(CTRL + C)。

関連情報