使用说明
SSH、远程构建和服务器任务结束后,通知手机
为 SSH 构建、备份和长时间 Linux 任务添加手机提醒。区分本机与服务器发送,保留退出码,明确 SSH 断连后的状态。
更新于
提醒应该从哪台机器发出
#可以在笔记本上等待 SSH 命令返回后通知,也可以在服务器任务结束时从服务器通知。前者使用电脑现有连接,但 SSH 断开可能只得到通信错误,不能据此确认远端任务结果。独立配对的服务器可以在电脑断开后继续发送提醒,前提是任务仍在运行。
| 包装脚本运行位置 | 适合的任务 | 需要注意 |
|---|---|---|
| 笔记本 | 前台 SSH 命令 | 断连可能导致远端结果未知。 |
| 已配对服务器 | 已有持久会话或定时任务 | 主机和出站网络需要可用。 |
| 未配对 CI 执行器 | 先设计来源授权 | 没有内置 GitHub Action,也不提供公开 token。 |
连接前的准备
#电脑或服务器需要 Ntfyx CLI 0.1.2,手机需要可用的主手机 App。iPhone 版本正在等待 App Store 审核;Android 1.0.0 已提交 Google Play 生产审核,目前只向已配置的内部测试者开放。这些状态不表示已公开上架。Android 推送需要 Google Play 服务。手机独立授权每台电脑或服务器;Web 收件箱是可选接收端,只能接收授权后发给它的新消息。
curl -fsSL https://ntfyx.me/install.sh | bash
ntfyx connect
ntfyx topics在电脑等待 SSH 返回后提醒
#在已配对电脑下载并阅读包装脚本。替换 YOUR_HOST 和远端工作目录。脚本保留 SSH 进程退出码,命令输出留在终端;不能把断连或 SSH 错误显示成任务成功。
curl -fsSLo notify-after.sh https://ntfyx.me/examples/scripts/notify-after.sh
cat notify-after.sh
bash notify-after.sh Work ssh YOUR_HOST 'cd /path/to/project && npm run build'把服务器独立配对为 Source
#在支持的 Linux 或 macOS 主机安装 CLI,运行 connect,然后用手机扫描终端临时二维码。选择现有 Topic,或在计划额度内新建。二维码应保密,配对应以运行任务的同一用户完成。Ntfyx 不会向服务器发起入站连接,也不需要另开 SSH 隧道。
# 在远端主机,以任务所属用户运行。
curl -fsSL https://ntfyx.me/install.sh | bash
ntfyx connect
ntfyx send "服务器连接已就绪" --topic Work让既有持久任务独立通知
#在已配对服务器保存 notify-after.sh,从现有 tmux 会话、定时器或服务调用。包装脚本负责报告退出结果,不负责保活、重启或发现完全没有启动的任务。cron 需要明确 PATH 和绝对路径。日志留在服务器,任务持久运行由原调度或进程管理方式负责。
# 在已配对服务器的既有持久会话运行。
bash /path/to/notify-after.sh Work bash -c 'printf "Remote demo finished\n"'请人决策,不开放任意远程 shell
#服务器脚本可以请求允许、拒绝、选项或短文字。回答只返回给对应请求,不构成无限制交互 shell。需要查看上下文,遇到过期或校验失败就停止,不直接执行回复文字。首版不提供团队升级通知或基础设施事故 SLA。
ntfyx ask "接下来检查哪个环境?" \
--choice staging=预发布 --choice production=生产 \
--topic Work --wait 60s --expires 90s --json