Linux 根分区快满了,这个方法快速定位!

2 02 2 年的时候,我在上海服务器上遇到了这个问题……当时一头雾水,系统立马就卡住了……当我查看日志时,发现根分区已经快满了。

赶紧,打开终端,输入命令:df -Hl... 嗯,在“根分区”(/)一栏,“Use%”看起来吓人,9 8 %!
你要检查一下到底是哪里占用了这么多空间... 方法一:使用du命令... 在根目录下输入du -hs... 屏幕直接滚动,目录那么多... 看着眼花缭乱。

不行,太慢了...用-max- Depth=2 代替,检查二级目录: du -h --max- Depth=2 | grep G | sort -nr... 嘿,这里有一个 /var/log 目录,差不多有 2 G 大小!
再检查一下...使用搜索命令直接查找大文件:find / -type f -size +1 G -exec du -h {} \;...这个命令较慢但准确...查找文件/var/log/secure,快了1 .5 G!
准备好了吗?好像不是这样的...重启服务也没用...df还是显示已满...
我又输入了一个命令:lsof +L1 ...找了半天发现某个用户的临时文件没有被删除...我直接用rm删除了...呃?还满吗?
我后来意识到我需要检查是否是文件系统保留空间问题。
df看了“Used”加上“Available”,比“Size”还小……居然还有5 %被保留了!
尝试更改预留比例:tune2 fs -m 1 /dev/vda1 ...将/dev/vda1 分区的预留更改为1 %...再次运行df,就会有更多空间!
磁盘空间足够了...但需要清理...将刚刚找到的大文件移动到其他磁盘...然后清理日志:journalctl --vacuum-size=1 00M...该命令将日志限制为1 00 MB。

还有一个包缓存...输入 yum clean all...或者在 Debian 系统上使用 apt clean...清理磁盘空间后会多一点空间。

最后我在考虑如何防止这种情况...我创建了一个监控脚本并使用 Prometheus + Grafana 运行它...当磁盘已满时它会发送一封电子邮件提醒我。

好吧...让我们忘记上海的服务器...

linux磁盘空间不足怎么清理

当 Linux 磁盘空间不足时,您需要快速清理它。

首先看看它会占用哪里的空间。
使用此命令查找大于 1 00MB 的文件:find / -xdev -size +1 00M -type f -print。
这个命令非常有用,可以列出所有大于1 00MB的文件。
然后查看哪些目录最大。
该命令是 sudo du -h --max-depth=1 / | sort -rh 非常重要。
您可以按大小排序以查看哪个目录占用的空间最多。

一旦发现,必须采取行动。
临时文件;有些文件(例如下载的安装包)是不必要的。
只需删除它们即可。
使用rm命令删除,注意不要误删。
还有软件包。
安装了很多没用的,卸载掉吧。
对于 Debian/Ubuntu 使用 sudo apt-get autoremove,对于 Fedora/RHEL 使用 sudo dnf autoremove。
这个功能非常重要,可以节省很多空间。

然后清除缓存和日志。
清理软件包。
对于 Debian/Ubuntu 使用 sudo apt-get clean,对于 Fedora/RHEL 使用 sudo dnf clean all。
不要错过系统日志。
使用 sudo Journalctl --vacuum-time=1 d 清除它们(最后一天除外)。
这个命令效果很好。
另外,如果是SSD的话。
您可以使用 sudo fstrim -v / 删除未使用的文件系统块,这对 SSD 有很多好处。

再来检查一下是否有重复的文件。
fdupes 找到它使用 -r /path/to/directory 或 find /path -type f -exec md5 sum {} + |同质组 | uniq -w3 2 -dd。
这个功能可以节省很多空间。

最后,还有一种压缩方法。
像largefile.log 这样的大文件可以使用gzip 或bzip2 进行压缩。
也可以使用指南;您可以使用 tar -czvf archive.tar.gz /path/to/directory 来解压和压缩。
这个方法很好,而且节省空间。

如果空间仍然不够,您需要添加硬盘。
购买新硬盘并将其安装到系统中。
命令是 sudo mount /dev/sdb1 /mnt/newdisk。
这项活动需要一些技术技能。
您需要知道如何插入硬盘。

但是,文件必须经过确认才能删除。
不要意外删除关键系统文件。
例如,/var/log/ 下的日志可能取决于服务。
对此要非常小心。

此外,定期清洁是一个好习惯。
例如,通过使用 logrotate 配置 logrotation,您可以防止空间不足问题。
您需要将其设置为自动轮转日志。

总之,通过这些步骤,可以释放大量的磁盘空间,并且系统可以稳定工作。
经常清洁,不要等到空间空了才清洁。

LINUX系统提示磁盘空间不足怎么办_LINUX磁盘空间不足解决方法

你好,Linux 系统说磁盘空间不足,我需要弄清楚该怎么办。
首先我需要查看哪个磁盘使用最多。
使用命令 df-h 并盯着“Use%”。
注意哪个磁盘几乎已满。
然后我需要检查哪个目录占用的空间最多,进入该目录然后使用命令 du-sh/2 > /dev/null|sort-rh|head-1 0 看看前十个目录是什么。
接下来,我需要清理系统日志。
比如/var/log里,有太多的东西很久没有删除了。
使用 sudojournalctl --vacuum-time=7 d 仅保留最后 7 天。
还需要删除一些较大的日志文件,比如syslog,所以使用sudotruncate -s0 /var/log/syslog。
旧的存档日志也应删除。

然后我必须刷新包管理器的缓存,例如APT、DNF等,在Ubuntu系统上使用sudoaptclean,或者在RHEL/CentOS/Fedora上使用sudodnfcleanall。
然后一些文件被进程占用,空间被删除但没有释放。
我需要找到这些文件并使用 sudolsof+L1 来查看。
如果该进程可以重新启动,我会重新启动它,例如 sudosystemctlrestartapache2 如果无法重启,请谨慎处理,查看lsof输出的PID和文件路径。

最后,如果以上都不起作用,我就不得不考虑扩展磁盘了。
在虚拟机环境中,首先在宿主机上扩展虚拟磁盘大小,然后启动来宾机。
如果是物理服务器,需要调整分区表,例如使用parted、sudoparted/dev/sda、resizepart2 ,设置1 00%将分区扩展到磁盘末尾。
文件系统也需要调整。
例如,对于 ext4 ,使用 sudoresize2 fs,对于 XFS,使用 sudoxfs_growfs。
但使用前不要忘记备份,以免丢失重要数据。
如果由于空间不足导致系统服务无法重启,则必须先通过lsof定位释放大文件。
就是这样,我得走了。

Linux磁盘空间不足的排查方法

这是一个陷阱,不要相信,不要做。

结果:用命令击中目标。

真实故事:2 02 3 年,一位 AWS 支持工程师忘记使用 lsof 检查 inode 是否耗尽,导致系统崩溃。
数字:df -h 查看磁盘,df -i 查看 inode,du -sh 查找目录,find / -type f -size +1 G 查找大文件。

方便提醒:每天使用 ncdu 交互式检查并运行脚本一次。