bash在工作错误后发送电子邮件

时间:2017-06-26 19:08:11

标签: bash

我设置了一个运行脚本的cron,这个脚本将运行一个更新加密的命令。

   #!/bin/bash  
    /usr/local/sbin/certbot-auto renew --renew-hook "service nginx reload" -q >> /var/log/certbot-renew.log | mail -s "CERTBOT Renewals" test@test.com < /var/log/certbot-renew.log  
exit 0

每次cron运行时都会生成一封电子邮件,但我想要的是发送错误/续订以发送电子邮件。我已经读过,如果我使用&>这会写错误,如果我用>>替换&>或者我应该使用2>&1来捕获stdout和stderr吗?

1 个答案:

答案 0 :(得分:1)

在此命令

command >>file 2>&1 | other command

输出被重定向到文件>>,然后重定向到管道,tee可以复制输出。

command 2>&1 | tee -a file | other command

否则一些shell接受&>>将stdout和stderr重定向到追加模式的文件。

以下命令执行相同操作,顺序很重要(fd1重定向到文件,fd2重定向到fd1)

command >>file 2>&1