如果 cronjob 备份失败,执行 curl 命令

Execute a curl command if cronjob backup fails

我有一个 cronjob,每 10 分钟备份一次我的数据库。我想在备份失败时收到短信。

示例:

*/1 * * * * sudo /usr/local/sbin/mysql.sh 2>&1 | curl 'http:www.smsapi.com/user=username&pass=password&text=$errormsg'

目前没有发送任何短信。如何将错误消息附加到 curl? (我也试过用电子邮件代替短信,但这也行不通)。

邮箱:

mysql.sh 2>&1 | mail -s "Mysql backup" -E user@host

cUrl:

mysql.sh 2>&1 | curl "http:www.smsapi.com/user=username&pass=password&text=`cat -`"

请注意:双引号而不是撇号和反引号用于将标准输入转换为参数的命令。转换相当原始,它不 URL-引用特殊字符。

您需要使用双管道 command || error-handler 以便仅在命令失败时调用错误处理程序。

我建议您反转逻辑 command && success-handler 并使用 WDT.io 等服务作为成功处理程序,以便在缺少成功(也称为失败)时提醒您。原因是 cron 作业本身可能会失败 运行,而您在使用错误处理程序时永远不会发现这一点。

关于你的第二个问题,如何附加错误,你可以使用$?访问之前的return代码。