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

时间:2017-05-31 13:39:30

标签: bash ubuntu curl cron postfix

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

示例:

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

目前它没有发送任何短信。如何将错误消息附加到curl? (我也尝试使用电子邮件而不是短信,但这也不起作用。)

2 个答案:

答案 0 :(得分:0)

邮件:

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

卷曲:

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

请注意:使用命令将std输入转换为参数,使用双引号代替撇号和反引号。转换相当原始,它不会引用特殊字符的URL。

答案 1 :(得分:0)

只有在命令失败的情况下才需要使用双管command || error-handler来调用错误处理程序。

我建议您反转逻辑command && success-handler并使用https://www.anapioficeandfire.com/api/characters/957等服务为成功处理程序提醒您,以防丢失成功(即失败)。原因是cron作业本身无法运行,而在使用错误处理程序时,您无法发现它。

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

相关问题