Tee命令unix

时间:2012-08-29 16:12:34

标签: linux bash unix ssh tee

如何将所有这些服务发送到日志文件中:

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

我没有找到这样的问题 谢谢!

3 个答案:

答案 0 :(得分:4)

tee接受-a标志附加到文件。因此,您应该能够通过执行以下命令将所有三个命令的输出重定向到单个文件:

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

(第一个命令将截断任何现有文件)

答案 1 :(得分:4)

另一种不使用tee的方法是简单地使用bash命令组,将stdout单个重定向到日志文件:

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

使用>>运算符附加到日志文件,或使用&>>运算符追加stdoutstderr。也可以使用bash子shell:

( stop service 1; stop service 2; stop service 3 ) > log1.log

答案 2 :(得分:1)

{
stop service 1
stop service 2
stop service 3
} 2>&1 | tee log1.log

这通过单个重定向操作处理所有三个命令的输出。它还包括日志文件中的错误。