机器用久了,很容易生成很多临时或者无用的文件,占用大量空间造成磁盘不够用。尤其是服务器,当磁盘不够用时,系统会出现莫名其妙的问题,数据库可能会造成数据损坏。此时快速定位可以删除的大文件并及时释放空间,是非常重要的。
第一步、查看磁盘整体使用情况
这里使用df命令,它可以查看所有已挂载磁盘的使用情况:
> df -h
- -h 把输出中的磁盘空间按照友好形式显示,比如M,G,T等等。
输出类似:
这里着重注意两列:
- Avail,可用空间,直接看那些空间不够用的磁盘
- Mounted on,挂载点,确定了有问题的磁盘后,查看对应的挂载点,一般一个磁盘就是根目录 / 。
第二步、查找占用空间大的文件和目录
这里使用du命令,他可以查看特定目录(默认当前目录)下所有文件、目录和自目录的占用情况。
2.1 查找占用最大的前十个文件或目录
> du -c | sort -nr | head -10
- du -c 显示已列出文件总的大小
- sort -nr 表示按数字大小倒序排列
- head -10 表示显示前10个
输出类似:
可以看出来,示例中最占用空间的是mysql的数据文件,还有一个系统日志文件。这里每个人的情况不一样,也可能会找到别的大文件,确认是否可以腾出空间。接下来讲一下系统日志的清理。
2.2 查看当前目录所有子文件和子目录的大小
> du -sh *
这里层层往下找的时候很好用,找到最大的目录,然后查看它下面的占用分布,然后再找到其中最大的,一层层递进很容易找到问题点。
输入类似:
可以看到/var/log占用了4.1G,此时可以 cd 到此目录然后继续运行此命令,直到找到问题所在。
第三步、系统日志清理
在linux系统中,journal和syslog都是比较基础的日志服务,很多时候会发现journal日志变得越来越大,可以通过配置来释放空间。
查看配置:
> journalctl --disk-usage
发现占用了4G,我们配置成500M:
> journalctl --vacuum-size=0.5G
可以看到,配置大小后,相关日志马上被清理了。
还可以配置日志存储的期限:
> journalctl --vacuum-time=1months
需要注意的一点是,因为缩短了保存时间和减小了空间大小,建议定期做好系统的备份。
参考:
Linux环境下通过journal命令查看和管理日志_linux journal-CSDN博客
centos7下解决journal日志越来越大的问题-腾讯云开发者社区-腾讯云