繁体   English   中英

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

[英]Execute a curl command if cronjob backup fails

我有一个cronjob,每10分钟备份一次我的数据库。 每当备份失败时,我都希望收到一条SMS。

例:

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

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

邮件:

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引用特殊字符。

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

我建议您反转逻辑command && success-handler并对command && success-handler使用WDT.io之类的服务,以在缺少成功(又称失败)的情况下向您发出警报。 原因是cron作业本身可能无法运行,而使用错误处理程序时您将永远无法找到它。

至于第二个问题,如何附加错误,您可以使用$?访问先前的返回代码$?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM