CentOS提供了wall(广播)、write(定向)、notify-send(桌面)等命令行工具,可通过脚本封装实现自动化消息发送。
nano或vim创建脚本文件(如message_script.sh),内容如下:#!/bin/bash
# 接收用户输入的消息
read -p "Enter your message: " message
# 广播给所有登录用户
wall "$message"
# 可选:定向发送给特定用户(取消注释并替换username)
# echo "$message" | write username
chmod +x message_script.sh./message_script.sh(执行后会提示输入消息并自动发送)cron定时运行脚本(如每天9点发送提醒),编辑crontab:crontab -e,添加规则:0 9 * * * /path/to/message_script.sh。cron是Linux系统自带的定时任务工具,可用于定期执行消息脚本,实现周期性自动化。
crontab -e,添加定时规则(以下为常见示例):
0 9 * * * /usr/bin/notify-send "每日提醒" "现在是早上9点"0 9 * * * echo "定时邮件内容" | mail -s "每日提醒" recipient@example.com0 * * * * /path/to/check_error.shsystemd是CentOS的系统和服务管理器,可在服务启动、停止等关键节点触发消息通知。
/etc/systemd/system/下创建服务文件(如send-message.service),内容如下:[Unit]
Description=Send System Message Service
[Service]
ExecStart=/usr/bin/notify-send "服务状态" "服务已启动" # 服务启动后发送桌面通知
# 或使用wall命令广播:ExecStart=/usr/bin/wall "服务已启动"
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload # 重新加载systemd配置
sudo systemctl enable send-message.service # 设置开机自启
sudo systemctl start send-message.service # 立即启动服务
ExecStartPost(启动后)、ExecStop(停止前)等指令中添加消息命令,实现不同节点的自动化通知。第三方工具可实现更丰富的消息渠道(如Pushover、Telegram、邮件、Slack等),适合企业级自动化需求。
sudo yum install pushover;echo "消息内容" | pushover -t YOUR_API_TOKEN -u "系统通知"。sudo yum install telegram-send;telegram-send -t YOUR_BOT_TOKEN "消息内容"。若需监控系统日志(如/var/log/messages)中的错误信息并自动发送邮件,可结合mailx工具实现。
sudo yum install mailx/etc/mail.rc,添加SMTP配置(以Gmail为例):set smtp=smtp://smtp.gmail.com:587
set smtp-use-starttls=yes
set smtp-auth=login
set smtp-auth-user=your_email@gmail.com
set smtp-auth-password=your_app_password # 使用应用专用密码(非登录密码)
check_error.sh):#!/bin/bash
LOG_FILE="/var/log/messages"
ALERT_EMAIL="recipient@example.com"
THRESHOLD=10 # 错误消息阈值
ERROR_COUNT=$(grep -i "error" $LOG_FILE | wc -l) # 统计错误消息数量
if [ $ERROR_COUNT -gt $THRESHOLD ]; then
echo "系统错误消息过多(${ERROR_COUNT}条),请检查!" | mailx -s "系统报警" $ALERT_EMAIL
fi
*/5 * * * * /path/to/check_error.sh。