如何将stdout和stderr保存或者重定向到其他文件?
时间:2020-01-09 10:43:32 来源:igfitidea点击:
问题:如何运行一个名为oraMon.pl的程序。
但是,此程序是从cron作业运行的。
它向stderr报告错误,向stdout报告正常输出。
如何将stdout和stderr都保存到3个单独的日志文件中?
解决方法:
如果您知道如何重定向stderr,stdout和名为tee的小命令,这并不难。
- fd0是stdin
- fd1是stdout
- fd2是stderr
重定向标准输出和标准错误有两种格式:&> word
和>&word
例如,任何写到fd2的东西都和输出到fd1的地方一样,您将使用:2>&1
tee命令从标准输入读取并写入标准输出和文件。
因此,要将stderr发送到/tmp/errors.log,将stdout发送到/tmp/output.log并将它们都发送到/tmp/final.log,请执行以下内容:
((/path/to/oraMon.pl 2>&1 1>&3 | tee /tmp/errors.log) 3>&1 1>&2 | tee /tmp/output.log) > /tmp/final.log 2>&1