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