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