SSH デバッグ情報を他の入力とは分けて (ログに記録して) 保持したい。ただし、単純に stderr をログ ファイルにリダイレクトすると、SSH からの出力とホスト マシン上のリモート プロセスからの出力を組み合わせる危険があります ( stderr に何かが送信される可能性があります)。
$ ssh -v somemachine 2> file.log
したがって、「debug1」に一致する行のみを除外したいと思います。
$ ssh -v somemachine | awk '/debug1/ {print > "file.log"; next} {print}'
ここまでは問題ありませんが、ssh のデバッグ出力は stderr に出力されます。そう...
$ ssh -v somemachine 2>& | awk '/debug1/ {print > "file.log"; next} {print}'
また失敗!stdout と stderr を混在させたくありません。悪い!
私のような子供は何をしますか?私は名前付きパイプまたはそのような野生のルートに行こうとしていましたが、実際に知る必要があるのは、awk を stderr のみからのパターンに一致させる方法だけです。