如何自定义CentOS消息模板
在 CentOS 中,常见的“消息模板”包括两类:一是系统日志 syslog 的输出格式模板,二是登录前后显示的欢迎/提示信息模板。下面分别给出可直接落地的配置方法与示例。
一、自定义 syslog 日志格式模板
-
适用场景:统一日志时间格式、字段顺序、是否显示主机/进程等,便于检索与对接日志平台。
-
核心思路:在 rsyslog 中通过 $template 定义模板,再把模板应用到指定的设施/优先级规则。
-
操作步骤:
-
备份配置
sudo cp /etc/rsyslog.conf /etc/rsyslog.conf.bak -
编辑配置,定义模板(示例:包含时间、标签与消息,并去除多余换行)
sudo vi /etc/rsyslog.conf
在文件任意规则之前加入:
$template CustomFormat,“%timegenerated% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n” -
应用模板到规则(示例:对所有日志生效,并停止后续处理)
在文件末尾添加:
. ?CustomFormat
& stop -
重启服务并验证
sudo systemctl restart rsyslog
tail -f /var/log/messages
-
-
常用属性与含义(可按需组合):
- %timegenerated%:日志产生时间
- %syslogtag%:设施.优先级[进程名]
- %msg%:日志正文
- 修饰符如 :::sp-if-no-1st-sp、:::drop-last-lf 用于控制空格与换行
-
提示:若只想影响部分日志,可将规则改为例如 authpriv. ?CustomFormat* 或 local0. ?CustomFormat* 等更精确的选择器。
二、自定义登录前后欢迎与提示信息模板
-
适用场景:在本地终端或 SSH 登录前后展示公司/项目标识、合规提示、运维公告等。
-
关键文件与差异:
文件 显示时机 适用连接 备注 /etc/issue 登录提示符之前(本地终端) 本地控制台 支持转义序列(见下) /etc/motd 登录成功后 本地与 SSH 简单文本/脚本输出 /etc/ssh/sshd_config 的 Banner 建立 SSH 连接后、认证前 仅 SSH 适合法律/合规声明 -
配置方法与示例:
-
本地控制台预登录信息(/etc/issue)
sudo vi /etc/issue
示例内容:
\s \r (\m) \n
Welcome to \n (\o)
Login time: \t
可用转义序列:\d(日期)、\l(终端号)、\m(架构)、\n(主机名)、\o(域名)、\r(内核版本)、\t(时间)、\s(系统名)、\u(当前登录用户数)、\U(用户数与用户)、\v(系统版本日期)。 -
登录成功后信息(/etc/motd 或 /etc/motd.d)
- 直接编辑:
sudo vi /etc/motd
示例:
Welcome to use my custom system! - 或按目录管理:
sudo mkdir -p /etc/motd.d
echo “Welcome to use my custom system!” | sudo tee /etc/motd.d/welcome
说明:/etc/motd 在本地与 SSH 登录成功后都会显示;/etc/motd.d 目录下的文件会被统一展示(若系统启用该机制)。
- SSH 连接前横幅(Banner)
sudo vi /etc/ssh/ssh_banner
示例:
Unauthorized access is prohibited. All activities are monitored and logged.
在 /etc/ssh/sshd_config 中启用:
sudo vi /etc/ssh/sshd_config
Banner /etc/ssh/ssh_banner
重启服务:
sudo systemctl restart sshd
说明:Banner 在 SSH 握手阶段展示,常用于合规提示;/etc/motd 则在认证成功后展示。 -
三、验证与排错
-
验证 syslog 模板:
- 观察新日志格式:tail -f /var/log/messages
- 触发一条日志(如 logger “test custom template”),确认字段与换行符合预期。
-
验证登录信息:
- 本地终端:直接登录控制台查看 /etc/issue 内容是否呈现。
- SSH:重开一个 SSH 会话,先看到 Banner(若配置),登录成功后看到 /etc/motd 内容。
-
常见问题:
- 修改未生效:确认 rsyslog/sshd 已重启,且规则选择器与模板名称拼写正确。
- SSH 不显示 /etc/issue:这是预期行为,/etc/issue 仅用于本地终端预登录显示。
- 字符编码与换行:确保文件为 UTF-8,避免 Windows 换行导致显示异常。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何自定义CentOS消息模板
本文地址: https://pptw.com/jishu/781173.html
