这是一个cron作业,输出到STDERR会产生错误的电子邮件通知,这是我需要的。但是,错误可能是非致命的,因此我还需要使用STDOUT包含在日志中的STDERR输出。怎么样?
答案 0 :(得分:1)
好的,我花了几分钟时间研究如何使用标准的shell命令行来完成这项工作。
为自己准备一个荒谬的命令行。
((./your-script 3>&1 1>&2 2>&3 3>&- | tee /dev/fd/2) 3>&1 1>&2 2>&3 3>&- ) |
cat >logfile
关于这种可憎的事情,我唯一可以说的是它有效......我找不到任何更简单的东西。哦,而且,它不需要bash
或任何东西。它适用于标准的bourne shell。
我还不知道为什么在接近结尾时必须{{1}},但没有它就行不通。
答案 1 :(得分:0)
以下命令适用于较少的字符:
((./your-script 3>&1 1>&2 2>&3- | tee /dev/fd/2) 3>&1 1>&2 2>&3- ) | cat > logfile