我有一个控制台应用程序,需要作为在我的服务器上部署新应用程序版本的一部分来运行。
该控制台应用程序旨在输出到控制台,并且无法更改。
我想正常运行它,但将 stdout 和 stderr 记录到文件中,同时将它们输出到控制台。
我怎样才能在 Linux 上做到这一点?
答案1
您可以使用tee
http://en.wikipedia.org/wiki/Tee_(命令)
仅通过管道传输标准输出
cmd | tee log.txt | less
要同时传输 stdout 和 stderr:
cmd >>(tee stdout.log) 2>>(tee stderr.log >&2)
答案2
您可以使用tee
。例如:
ls -l / | tee tmp.txt
将打印到标准输出,并将tmp.txt
包含输出的副本。如果你想在 tmp.txt 中包含 stderr:
ls -l / 2>&1 | tee tmp.txt