linux日志 限制

部署一个业务后,发现磁盘占用太大,日志目录巨大

journal 日志的处理,太多日志需要自动删除

1、用echo命令,将空字符串内容重定向到指定文件中

echo “” > system.journal

说明:此方法只会清空一次,一段时间后还要再次手动清空很麻烦,这里可以用以下命令让journalctl 自动维护空间

journalctl –vacuum-time=3d

1)只保留近一周的日志

journalctl –vacuum-time=1w

2)只保留500MB的日志

journalctl –vacuum-size=500M

如果要手工删除日志文件,则在删除前需要先轮转一次journal日志

systemctl kill –kill-who=main –signal=SIGUSR2 systemd-journald.service
要启用日志限制持久化配置,可以修改 /etc/systemd/journald.conf

SystemMaxUse=16M
ForwardToSyslog=no
然后重启

systemctl restart systemd-journald.service
检查journal是否运行正常以及日志文件是否完整无损坏

journalctl –verify

messages 比较大的处理

[root@k1 4284cfe27c5b48c38adde30f33b4bb60]# more /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
size 500000
rotate 7
postrotate
/bin/kill -HUP cat /var/run/syslogd.pid 2> /dev/null 2> /dev/null || true
endscript
}
[root@k1 4284cfe27c5b48c38adde30f33b4bb60]#

systemctl restart rsyslog

强制执行某个日志的切换,nginx是在/etc/logrotate.d下文件的文件名

logrotate -f /etc/logrotate.d/syslog

如果在存放日志的目录下发现了切换的日志文件,则说明切换成功

Leave a Reply

Your email address will not be published. Required fields are marked *