CentOS系统消息通知最佳实践
echo "通知内容" | wall
(需root权限)。适用于紧急情况,确保所有用户即时收到信息。who
命令查看目标用户的TTY;② 执行write 用户名 TTY
,输入消息后按Ctrl+D
结束。适用于一对一沟通。write
消息,mesg -n
关闭接收,mesg -y
开启接收。用于保护隐私或避免干扰。libnotify
),格式为notify-send "标题" "内容"
。适用于本地桌面用户的非紧急提醒(如磁盘空间不足)。sudo yum install mailx
;/etc/mail.rc
,添加set smtp=smtp.gmail.com:587; set smtp-auth=login; set smtp-auth-user=your_email@gmail.com; set smtp-auth-password=your_app_password; set from=your_email@gmail.com
(需开启Gmail“允许不够安全的应用”或使用应用专用密码)。crontab -e
),添加MAILTO="your_email@example.com"
;② 设置定时任务(如每小时检查/var/log/messages
中的ERROR日志):0 * * * * grep "ERROR" /var/log/messages | mail -s "Hourly Error Report" your_email@example.com
。适用于持续监控系统状态。journalctl
过滤日志并触发通知,示例脚本(检测ERROR日志并发送桌面通知):#!/bin/bash
journalctl -b | grep -i "error" | while read line; do
notify-send "系统错误" "$line"
done
将脚本添加到cron(如每10分钟运行一次),实现实时报警。curl -X POST -H 'Content-type: application/json' --data '{"text":"系统通知:磁盘空间不足"}' https://hooks.slack.com/services/your_webhook_url
适用于需要接入企业协作工具的场景,提升通知的可达性和协作效率。pushover -t your_api_token -u "系统通知" "服务器负载过高"
适用于需要移动端通知的场景,确保用户随时随地收到重要信息。echo "测试通知" | wall
)确认渠道畅通。/var/log/messages
),便于后续审计和排查问题。