清理linux服务器磁盘垃圾释放空间 置顶!
介绍
CentOS系统中有两个日志服务,分别是传统的 rsyslog 和 systemd-journal
systemd-journal
systemd-journald是一个改进型日志管理服务,可以收集来自内核、系统早期启动阶段的日志、系统守护进程在启动和运行中的标准输出和错误信息,还有syslog的日志。
该日志服务仅仅把日志集中保存在单一结构的日志文件/run/log中,由于日志是经历过压缩和格式化的二进制数据,所以在查看和定位的时候很迅速。
默认情况下并不会持久化保存日志,只会保留一个月的日志。另外,一些rsyslog无法收集的日志也会被journal记录到。
rsyslog
rsyslog作为传统的系统日志服务,把所有收集到的日志都记录到/var/log/目录下的各个日志文件中。
- 常见的日志文件如下:
/var/log/messages
绝大多数的系统日志都记录到该文件/var/log/secure
所有跟安全和认证授权等日志都会记录到此文件/var/log/maillog
邮件服务的日志/var/log/cron
crond计划任务的日志/var/log/boot.log
系统启动的相关日志
查看文件占用大小
du -hm --max-depth=1 -h
找到占用最大的文件,进入继续执行该指令。
Linux到底有没有占用空间的垃圾文件,这个看如何判定了,例如好几年前、几个月前的日志文件、系统文件,基本没什么用处,算垃圾文件吗?
ls -lhm --full-time /var/log/journal/f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122/ | sort -k6 | head -n30
查看垃圾文件的方法
未清理前发现硬盘根分区空间告急,用 du -t 100M /var
或journalctl --disk-usage
命令查看,发现/var/log/journal日志文件占用了近3G空间,每个日志文件体积高达8-128M,这些日志文件记录了很长时间以来的systemd情况,毫无价值,用 journalctl --vacuum-size=10M
命令将其清理之后,腾出了2.7G的空间。用df
命令一查,/
根分区果然宽敞了很多。
查看某个目录的文件大小并排序(单位为MB)
du -hm --max-depth=1 /var/ | sort -n
或者查看该目录下文件夹
du -h --max-depth=1
查看文件大小 du -ah
清空 /var/log/journal 文件的方法
1、用echo命令,将空字符串内容重定向到指定文件中
echo "" > system.journal
说明:此方法只会清空一次,一段时间后还要再次手动清空很麻烦,这里可以用以下命令让journalctl 自动维护空间
2、journalctl 命令自动维护文件大小
1)只保留近一周的日志
journalctl --vacuum-time=1w
2)只保留500MB的日志
journalctl --vacuum-size=500M
3)直接删除 /var/log/journal/ 目录下的日志文件
rm -rf /var/log/journal/f9d400c5e1e8c3a8209e990d887d4ac1
问题与分析解决
执行 journalctl 命令时报错:Error was encountered while opening journal files: Input/output error
journalctl --vacuum-time=1w
Error was encountered while opening journal files: Input/output error
问题分析:日志文件损坏
解决方法:删除之前的日志,并重启 journalctl 服务
mv journal/f9d400c5e1e8c3a8209e990d887d4ac1 journal/f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122
systemctl restart systemd-journald.service
查看 /var/log/journal/ 日志目录如下:
然后,再执行 journalctl 限制日志的命令:
journalctl --vacuum-time=1w
Vacuuming done, freed 0B of archived journals on disk.
journalctl --vacuum-size=500M
Vacuuming done, freed 0B of archived journals on disk.
权限问题
一般 tomcat 需要切换 tomcat 用户
sudo su tomcat
退出用户
exit
或 ctrl+d
切换root 用户
sodu su - root
linux ls 按文件大小排序
ls -Sl
其是按照由大到小排序,如果想要反过来,从小到大,那么用:
ls -Slr
再者,如果想要输入是按照“便于人类阅读的方式”,那么就再加一个-h,表示"--human-readable"
这样单位就是k或者M ,比较容易看清楚结果
标题:清理linux服务器磁盘垃圾释放空间
作者:mmzsblog
地址:https://www.mmzsblog.cn/articles/2022/04/14/1649917157778.html
如未加特殊说明,文章均为原创,转载必须注明出处。均采用CC BY-SA 4.0 协议!
本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。若本站转载文章遗漏了原文链接,请及时告知,我们将做删除处理!文章观点不代表本网站立场,如需处理请联系首页客服。• 网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
• 公众号转载请联系网站首页的微信号申请白名单!
