多迈知识库
第二套高阶模板 · 更大气的阅读体验

脚本执行结束后通知的几种实用方法

发布时间:2026-01-15 23:10:25 阅读:326 次

为什么需要在脚本执行结束后收到通知

写过自动化脚本的人都知道,有些任务一跑就是几分钟甚至更久。比如备份数据库、批量处理图片、远程部署服务等。你总不能一直盯着终端看它什么时候结束。这时候,如果能在脚本跑完后自动提醒你一声,效率就高多了。

常见的通知方式包括弹窗提示、声音提醒、发送邮件或推送消息到手机。下面介绍几种简单有效的实现方式,适用于 Linux、macOS 和 Windows 环境。

Linux/macOS 终端弹窗通知

在类 Unix 系统中,可以用 notify-send(Linux)或 osascript(macOS)来弹出桌面通知。

例如,在 Bash 脚本末尾加上:

# Linux
notify-send "脚本已完成" "任务顺利结束"

# macOS
osascript -e 'display notification "任务顺利结束" with title "脚本已完成"'

这样脚本一跑完,右上角就会弹出一条消息,不用再手动查状态。

通过邮件发送完成通知

如果是在服务器上跑长时间任务,邮件通知更可靠。可以使用 mail 命令配合本地 MTA,或者用 Python 脚本调用 SMTP 发送。

一个简单的邮件通知示例:

echo "脚本已成功执行完毕" | mail -s "任务完成提醒" user@example.com

前提是系统已配置好邮件发送环境,比如安装了 ssmtppostfix

向手机推送通知

更现代的做法是把通知推送到手机。可以用 Pushover、ServerChan 或 Bark 等工具。

以 ServerChan 为例,注册后获取 SCKEY,然后在脚本末尾调用:

curl "https://sctapi.ftqq.com/SCT1234567890abcdefg.send?title=脚本已完成&desp=任务执行结束"

几秒钟后,微信就会收到一条推送,随时随地掌握任务状态。

Windows 下的声音提示

在 Windows 上跑 PowerShell 脚本时,也可以加个声音提醒收尾。

在脚本最后加上:

[System.Media.SystemSounds]::Beep.Play()

脚本执行完毕,电脑会“滴”一声,告诉你该继续下一步了。虽然简单,但在办公室场景里特别实用。

结合日志记录与条件通知

不是所有情况都该通知。比如脚本失败了才需要提醒,成功可以静默。

可以这样写:

#!/bin/bash

your_command_here

if [ $? -eq 0 ]; then
    osascript -e 'display notification "成功" with title "脚本完成"'
else
    osascript -e 'display notification "失败,请检查" with title "脚本出错"'
fi

这样既能区分状态,又不会被成功的消息刷屏。

实际使用中,根据运行环境选择合适的方式。本地测试用弹窗,服务器用邮件或微信推送,关键任务可以组合多种方式,确保不漏掉重要信息。