为什么需要在脚本执行结束后收到通知
写过自动化脚本的人都知道,有些任务一跑就是几分钟甚至更久。比如备份数据库、批量处理图片、远程部署服务等。你总不能一直盯着终端看它什么时候结束。这时候,如果能在脚本跑完后自动提醒你一声,效率就高多了。
常见的通知方式包括弹窗提示、声音提醒、发送邮件或推送消息到手机。下面介绍几种简单有效的实现方式,适用于 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前提是系统已配置好邮件发送环境,比如安装了 ssmtp 或 postfix。
向手机推送通知
更现代的做法是把通知推送到手机。可以用 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这样既能区分状态,又不会被成功的消息刷屏。
实际使用中,根据运行环境选择合适的方式。本地测试用弹窗,服务器用邮件或微信推送,关键任务可以组合多种方式,确保不漏掉重要信息。