1

これらすべてのサービスをログ ファイルに記録するにはどうすればよいですか。

stop service 1
stop service 2
stop service 3

これらすべてのサービス ログをファイルに保存したい

使用する必要があります:

stop service 1 | tee log1.log
stop service 2 | tee log1.log
stop service 3 | tee log1.log

または:

stop service 1 
stop service 2 
stop service 3 | tee log1.log

このような質問は見つかりませんでした ありがとうございます!

4

3 に答える 3

5

tee-aファイルに追加するフラグを受け入れます。したがって、次のコマンドを実行することで、3つのコマンドすべてからの出力を1つのファイルにリダイレクトできるはずです。

stop service 1 | tee log1.log
stop service 2 | tee -a log1.log
stop service 3 | tee -a log1.log

(最初のコマンドは既存のファイルを切り捨てます)

于 2012-08-29T16:16:09.653 に答える
4

を使用しないもう 1 つの方法は、単純にログ ファイルへteeの単一のリダイレクトで bash コマンド グループを使用することです。stdout

{ stop service 1; stop service 2; stop service 3 } > log1.log

演算子を使用>>してログ ファイルに追加するか、&>>演算子を使用して と の両方を追加しstdoutますstderr。代わりに bash サブシェルを使用することもできます。

( stop service 1; stop service 2; stop service 3 ) > log1.log
于 2012-08-29T16:20:15.640 に答える
1
{
stop service 1
stop service 2
stop service 3
} 2>&1 | tee log1.log

これにより、3 つのコマンドすべての出力が 1 回のリダイレクト操作で処理されます。また、ログ ファイルにエラーが含まれます。

于 2012-08-29T16:25:01.180 に答える