【运维】磁盘满了怎么办?如何快速找到占用空间的文件和腾出空间

机器用久了,很容易生成很多临时或者无用的文件,占用大量空间造成磁盘不够用。尤其是服务器,当磁盘不够用时,系统会出现莫名其妙的问题,数据库可能会造成数据损坏。此时快速定位可以删除的大文件并及时释放空间,是非常重要的。

第一步、查看磁盘整体使用情况

这里使用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日志越来越大的问题-腾讯云开发者社区-腾讯云

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值