CentOS消息推送实用工具与方案
一 内置与系统工具
echo "今晚22:00维护" | wall。mesg y/n 控制是否接收。示例:write alice "请尽快保存"。logger -t ALERT "磁盘空间不足";在 /etc/rsyslog.conf 中可按级别与设施分流,如 *.* /var/log/messages、auth,authpriv.* /var/log/secure,修改后 systemctl restart rsyslog。journalctl -f。notify-send "更新" "发现安全补丁";建议配合轻量守护进程 dunst。systemd-cat 将输出写入系统日志;亦可在服务单元中用 ExecStartPost 触发通知脚本。二 邮件与Webhook通知
/etc/mail.rc(示例:set smtp=smtp.example.com、set smtp-auth=login 等),发送:echo "告警" | mailx -s "主题" admin@example.com。curl -X POST -H "Content-Type: application/json" -d '{"text":"CPU>90%"}' https://hooks.slack.com/services/...。curl -s -X POST -H 'Content-Type: application/json' --data '{"chat_id":"YOUR_CHAT_ID","text":"服务已重启"}' https://api.telegram.org/botYOUR_BOT_TOKEN/sendMessage。三 自建推送平台
四 消息队列与异步通知
rabbitmqadmin 或客户端库(如 pika)进行消息发布与消费,实现服务解耦与可靠异步通知。五 场景化组合与频率控制
journalctl -f | grep --line-buffered "ERROR" | while read line; do notify-send "系统错误" "$line"; done,或定时用 grep -qi "ERROR" /var/log/messages 触发脚本推送。0 9 * * * notify-send "早安" "9:00 例行检查";*/5 * * * * /usr/local/bin/log_monitor.sh 每 5 分钟检查一次。OnCalendar=*-*-* 08:00:00 实现每天 08:00 执行,适合替代 cron 的精准调度。