CentOS 消息相关使用技巧
一 系统日志 messages 高效查看
- 定位日志文件:系统常规日志位于**/var/log/messages**(需管理员权限查看)。
- 常用查看命令:
- 实时跟踪最新日志:sudo tail -f /var/log/messages
- 分页查看:sudo less /var/log/messages
- 关键字检索:sudo grep ‘error’ /var/log/messages
- 查看最近 N 条:sudo tail -n 100 /var/log/messages
- 场景建议:排查服务异常时,优先用“tail -f + grep”组合定位关键字,再回溯上下文定位根因。
二 用户间终端消息 write wall mesg
- 查看在线用户与终端:使用who或w,获取目标用户的用户名与TTY(如 pts/0)。
- 向指定终端发消息:write USER TTY
- 示例:write alice pts/1,回车后输入内容,结束输入用Ctrl+D。
- 也可用管道:echo -e “Hello\nPlease check logs.” | write alice pts/1。
- 全体广播:wall “系统将在5分钟后维护,请保存工作。”
- 接收开关:mesg y(允许)/ mesg n(拒绝);当前状态用 mesg 查看。
- 注意:普通用户可用 mesg n 拒绝,但root仍可写入;生产环境建议约定沟通礼仪与时段,避免干扰。
三 邮件通知与系统告警
- 安装与发信:
- 安装 MTA(如 Postfix):sudo yum install postfix
- 启动与开机自启:sudo systemctl start postfix && sudo systemctl enable postfix
- 发送邮件:echo “Disk usage high” | mail -s “Alert” admin@example.com
- 本地邮件查看:
- 命令行:mail,常用命令有 h(列表)、p(查看)、d(删除)、q(退出并保存)。
- 邮件存放:/var/spool/mail/用户名。
- 安全建议:仅在内网或受控环境启用邮件功能,避免泄露内网信息。
四 日志集中与远程通知
- 远程日志:编辑**/etc/rsyslog.conf或/etc/rsyslog.d/*.conf**,添加如:
- . @192.0.2.10:514(UDP),或 . @@192.0.2.10:514(TCP)
- 重启服务:sudo systemctl restart rsyslog
- 第三方推送:
- Slack Webhook 示例脚本:
- WEBHOOK_URL=“https://hooks.slack.com/services/T000/B000/XXXX”
- curl -X POST -H ‘Content-type: application/json’ --data “{"text":"$1"}” “$WEBHOOK_URL”
- 定时推送:用 cron 或 systemd timer 控制频率(如每日 08:00 广播)。
- 适用场景:多机房的集中监控、合规审计与即时告警联动。
五 定时与频率控制
- Cron 定时广播:
- 示例(每日 08:00):0 8 * * * /usr/bin/wall “Scheduled maintenance at 09:00.”
- Systemd 定时器:
- 服务单元:/etc/systemd/system/msg-broadcast.service
- [Service] ExecStart=/usr/bin/wall “Daily notice at 08:00”
- 定时器单元:/etc/systemd/system/msg-broadcast.timer
- [Timer] OnCalendar=--* 08:00:00;Persistent=true
- 启用:systemctl daemon-reload && systemctl enable --now msg-broadcast.timer
- 建议:将告警与广播分离,避免高频广播造成“告警疲劳”。