我正在尝试重定向:
为cron工作。
我试图实现的目标是仅在出现错误时收到通知,同时将整个输出记录到文件中。
电子邮件消息应包含这些错误消息,因为在许多情况下,我只能通过阅读错误消息来识别并修复问题。我需要收到有关各种错误的通知。该脚本也会在stderr上打印自己的错误。
我需要将整个输出记录在同一个文件中,因为知道在抛出错误时脚本正在做什么很有用。
必须截断现有的日志文件。
答案 0 :(得分:0)
找到它:
exec 4>output.log; ./script 2> >(tee >(cat - >&4)) 1>&4
注意:
stdout
已经重定向的同一文件上使用tee时,必须使用文件描述符以避免竞争条件; exec 4>output.log
而非exec 4<>output.log
否则文件不会被截断; tee >(cat - >&4)
是将文件描述符而不是文件名传递给此类命令的语法; 2> >(tee ...)
是将stderr重定向到tee命令的语法