如何清理Linux中的日志文件

昨天半夜我重新启动服务器,发现硬盘已经快满了日志文件。
登录并查看。
/var/log/ 里有一堆堆的系统日志,auth.log,kern.log...像小山一样。
车轮在滚动。
需要快速打包。

方法一,logrotate,并不会真正造成任何问题。
上次我为 Nginx 设置轮换时,我将其设置为每周轮换,默认情况下会持续 4 周,并且旧文件会自动进行 gzip 压缩。
我记得使用 sudo logrotate /etc/logrotate.d/nginx 进行测试,发现配置中有一个轻微的错误,并且日志没有旋转。
我花了很长时间才改,最后加上了“missingok”。
现在,该工具还可以执行一些有用的操作,例如自动删除超过 9 0 天的日志,从而无需手动更新。
不过对于初学者来说有点玄学,参数需要慢慢学习。

方法2 适用于临时紧急救援。
上次我测试新软件时日志文件达到了2 G。
只需使用 sudo > /var/log/test.log 即可清除它。
但要小心。
清除auth.log后,突然发现SSH登录条目不见了,差点酿成大错。
所以清理前最好用 grep "keyword" /var/log/xxx.log > /backup/xxx_2 02 3 1 02 7 .log 备份关键段落。

方法3 我已经用过好几次了。
当syslog破裂时, sudo Journalctl --vacuum-size=5 00M 将立即减少内存使用。
最烦人的是清除日志目录,因为systemd会自动恢复它。
经过长时间的去除,几天后就会重新长出来。
有一天,我忘记添加 --no-pager,终端立即充满了系统消息,并且无法找到键盘。

方法 4 的风险最高。
我的同事删除了/var/log/yum.log。
结果系统更新并显示未找到配置的消息。
因此,现在规定所有删除操作都必须先向md5 sum/var/log/xxx.log写入一个hash值。
当我上周清理网络服务器日志时,我不小心删除了Apache的error_log,我花了两个小时重新安装模块才恢复。

备份是一个常见的话题。
我习惯使用rsync /var/log/ /backup/logs_进行日常同步,但最近发现备份脚本有问题。
多个日志目录不同步,导致故障排除时险些发生。
等等,还有一件事。
Logrotate可以链接到crontab并自动运行。
我以前没用过这个功能...

怎样用Linux命令清理日志文件

是的,需要明确的是,以下是Linux中清除日志的方法:
1 logrotate,自动轮转,不占空间。
2 .手动删除速度快,但要小心。
3 .Journalctl,systemd日志,按时间或大小清除。
4 . 调整日志级别,生成更小的日志,节省空间。
5 . 搜索、获取特定记录并分组删除。
6 . 修剪文件,裁剪,大小可以控制。

记得备份,不要误删关键日志。
你自己看看,哪种方法合适?