在 CentOS 中“替换系统日志”通常指更换日志系统或日志文件位置/内容。不同需求做法不同,下面按常见场景给你完整说明(含 CentOS 7/8)。
systemctl status rsyslog
rsyslog 主配置文件:
/etc/rsyslog.conf
日志规则目录:
/etc/rsyslog.d/*.conf
示例:把 所有日志 写到新文件 /var/log/newsys.log
# /etc/rsyslog.d/newlog.conf
*.* /var/log/newsys.log
重启生效:
systemctl restart rsyslog
CentOS 8 默认使用 journald,不再依赖 rsyslog。
journalctl
mkdir -p /var/log/journal
systemctl restart systemd-journald
systemctl disable --now rsyslog
truncate -s 0 /var/log/messages
或:
cat /dev/null > /var/log/messages
mv /var/log/messages /var/log/messages.bak
touch /var/log/messages
chown root:root /var/log/messages
chmod 600 /var/log/messages
systemctl restart rsyslog
yum install syslog-ng -y
systemctl disable --now rsyslog
systemctl enable --now syslog-ng
配置文件:
/etc/logrotate.conf
/etc/logrotate.d/
示例:每天替换旧日志
/var/log/newsys.log {
daily
rotate 7
missingok
notifempty
compress
create 0600 root root
}
| 需求 | 推荐方案 |
|---|---|
| 换日志路径 | 修改 rsyslog/journald 配置 |
| 清空系统日志 | truncate / cat /dev/null |
| 换日志服务 | rsyslog ↔ syslog-ng |
| 不用 rsyslog | 使用 systemd-journald |
| 自动替换旧日志 | logrotate |
你可以直接告诉我:
我可以给你精确命令或配置文件示例。