重定向标准和错误输出以附加文件,并通过电子邮件发送截断结果

重定向标准和错误输出以附加文件,并通过电子邮件发送截断结果

我有一个看起来像这样的 crontab:

 0 8 * * * command >> mylog.log 2>&1

这会将错误和标准输出附加到 mylog.log 中。

除了上述内容之外,我希望能够仅捕获最新的输出command并通过以下方式将它们发送到我的电子邮件:

 mail -s 'test' [email protected]

换句话说,将所有输出写入日志,并仅将新输出发送到电子邮件。

我读了 T 恤,有些东西告诉我这可能是一个答案,但我对此不是 100% 确定。

答案1

与同事核实后,解决方案最终变得非常简单。只需将脚本分成多个部分即可。将这些部分放入 shell 脚本中。

 #!/bin/sh
 # write truncated log to temp.log 
 command > temp.log 2>&1
 # mail contents of truncated log
 mail -s 'test' [email protected] < temp.log
 # append contents of truncated log to your primary log
 cat temp.log >> mylog.log

然后获取 bash 脚本并在 crontab 中运行它

 0 8 * * * bash mysh.sh
 

相关内容