如果 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代码。
我有一个 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代码。