[英]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.