任务通知 cron · CLI

备份和定时任务失败时提醒我

无人值守的任务执行失败时,把错误摘要送到手机。

准备服务器任务通知

更新于

让夜间任务把异常告诉你

nightly-backup消息示例

备份失败

备份返回错误,请检查可用存储与任务日志。

什么时候用

备份在你睡觉时执行。如果命令已经启动并返回错误,脚本就可以通知你,同时保留失败状态供调度器记录。消息应简短,包含任务名称和查看原日志的线索。

三步接好

  1. 使用调度任务的账号

    使用实际运行定时任务的用户安装并配对 CLI,核对它的绝对路径。

  2. 在失败分支添加通知

    保存任务退出码,失败时发送摘要,最后向调度器返回原退出码。

  3. 验证调度环境

    按调度器实际 PATH 与配置运行一次无副作用的失败测试,再接入既有备份脚本。

从这里开始

先在手机上准备好 Ntfyx

在电脑上?点击商店,用手机扫描二维码下载。

iPhone · 1.6.4

在手机上下载 Ntfyx

使用手机相机扫码,打开 App Store。

前往 Ntfyx 的二维码:App Store直接打开 App Store

这是商店下载链接,不会连接或授权设备。

Android · 1.6.4

在手机上下载 Ntfyx

使用手机相机扫码,打开 Google Play。

前往 Ntfyx 的二维码:Google Play直接打开 Google Play

这是商店下载链接,不会连接或授权设备。

怎样确认接通了

下方 POSIX shell 演练使用 false,不操作备份文件。用 sh 运行后,确认手机收到失败消息且脚本退出码为 1;换成 true 时应正常退出且不发消息。接入 cron 时,使用已核实的绝对路径或显式设置 PATH。

可复制示例
# 无副作用的失败演练,不操作备份文件。
task_status=0
false || task_status=$?
if [ "$task_status" -ne 0 ]; then
  ntfyx send "备份演练失败(退出码 $task_status)" || \
    printf '%s\n' '通知失败,请查看任务日志。' >&2
fi
exit "$task_status"

使用时要知道

这种方式只能报告已运行任务返回的错误。主机关机或任务从未启动时,通知代码也无法执行;检测漏跑需要额外心跳机制。通知投递仍依赖网络和额度,应保留调度器日志,让通知失败本身也有记录。