centos message如何定制化设置
导读:CentOS 消息定制化设置指南 一 登录前与登录后的消息 静态登录提示:编辑文件 /etc/motd,添加任意公告文本(如维护通知)。下次登录终端将直接显示该内容。示例: sudo nano /etc/motd 写入:欢迎使用 Cen...
CentOS 消息定制化设置指南
一 登录前与登录后的消息
- 静态登录提示:编辑文件 /etc/motd,添加任意公告文本(如维护通知)。下次登录终端将直接显示该内容。示例:
- sudo nano /etc/motd
- 写入:欢迎使用 CentOS,今日系统已更新!
- 动态登录提示:使用 /etc/update-motd.d/ 脚本生成动态内容(如时间、负载)。示例:
- cd /etc/update-motd.d/
- sudo nano 99-custom-message
- 内容:
- #!/bin/sh
- echo “=== 系统动态信息 ===”
- echo “当前时间:$(date)”
- echo “系统负载:$(uptime | awk -F’load average: ’ ‘{ print $2} ’)”
- 赋权:sudo chmod +x 99-custom-message
- 确保 SSH 登录显示 MOTD:检查 /etc/pam.d/sshd 中启用 pam_motd 的行未被注释,例如:
- session optional pam_motd.so motd=/run/motd.dynamic noupdate
- 图形界面登录提示(GDM):编辑 /etc/gdm/custom.conf,在 [daemon] 段加入自定义命令(如弹窗欢迎)。示例:
- [daemon]
- DisplayCommand = /usr/bin/zenity --info --text=“欢迎登录图形界面!”
二 实时广播与定向消息
- 向所有在线终端广播:使用 wall。示例:
- echo “【系统公告】今晚 22:00–23:00 维护,请保存工作后退出。” | wall
- 或:wall -f /tmp/custom_message.txt
- 向指定用户发送:结合 who 与 write。示例:
- who | grep ‘pts/’ | awk ‘{ print $1} ’ | xargs -I { } write { } ‘重要提醒:您的账户将于 1 小时后过期。’
- 接收权限控制:
- 关闭接收:mesg -n
- 开启接收:mesg -y
三 日志与邮件告警
- 系统日志路由与格式:编辑 /etc/rsyslog.conf 或 /etc/rsyslog.d/ 下的文件,按需分类存储。示例:
- 将内核消息单独记录:kern.* /var/log/kernel.log
- 修改后重启服务:sudo systemctl restart rsyslog
- 远程日志:将日志发往远程服务器(UDP 514)。示例:
- authpriv.* @192.0.2.10:514
- 邮件通知(mailx + Postfix):
- 安装:sudo yum install mailx postfix -y
- 配置发信(编辑 /etc/mail.rc):
- set from=“your_email@example.com”
- set smtp=smtp.yourmailserver.com
- set smtp-auth=login
- set smtp-auth-user=“your_username”
- set smtp-auth-password=“your_password”
- 发送测试:echo “【系统报警】磁盘空间不足(剩余 10%)” | mailx -s “系统报警” admin@example.com
- 说明:邮件适合留存与远程告警,配合 rsyslog 规则可实现关键日志自动邮件通知。
四 图形桌面与远程推送通知
- 桌面弹窗通知(当前登录用户):使用 notify-send。示例:
- 安装依赖:sudo yum install libnotify -y
- 发送:notify-send “【每日提醒】” “当前时间 $(date +”%Y-%m-%d %H:%M:%S")"
- 系统级日志转通知:结合 journalctl -f 与脚本实时推送。示例:
- 创建脚本 log_notifier.sh:
- #!/bin/bash
- journalctl -f | grep --line-buffered “ERROR” | while read line; do
- notify-send “系统错误” “$line”
- done
- 运行:chmod +x log_notifier.sh & & ./log_notifier.sh
- 创建脚本 log_notifier.sh:
- 第三方 Webhook 推送(远程告警):
- Slack:curl -X POST -H ‘Content-type: application/json’ --data ‘{ “text”:“【系统通知】CPU 使用率超过 90%”} ’ https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
- Telegram:curl -s -X POST -H ‘Content-Type: application/json’ --data ‘{ “chat_id”:“YOUR_CHAT_ID”,“text”:“【系统通知】服务器已重启”} ’ https://api.telegram.org/botYOUR_BOT_TOKEN/sendMessage
- 自建推送服务(Gotify):部署 Gotify 后,通过 API 发送。示例:
- curl -X POST “http://服务器IP/message?token=应用Token” -d ‘title=系统告警’ -d ‘message=磁盘空间不足!’ -d ‘priority=5’
五 常见问题与排查
- 动态 MOTD 不显示:确认 /etc/update-motd.d/ 脚本具备可执行权限,且 /etc/pam.d/sshd 中 pam_motd.so 行未被注释;必要时检查 /run/motd.dynamic 是否由系统更新机制生成。
- 广播消息未出现:确认目标终端未禁用消息接收(mesg 状态),并使用正确的命令格式(echo … | wall 或 wall -f 文件)。
- 邮件发送失败:核查 /etc/mail.rc 的 SMTP、账号与密码是否正确,确认 Postfix 已启动并允许外发;必要时查看 /var/log/maillog。
- 桌面通知无效:确认当前会话存在图形会话(如 DISPLAY 变量),且已安装 libnotify;必要时使用完整路径 /usr/bin/notify-send。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos message如何定制化设置
本文地址: https://pptw.com/jishu/761442.html
