根分区(/)是Linux文件系统的核心,包含操作系统核心文件、配置文件、日志文件、缓存和用户数据等。当根分区满载时,系统可能出现难以写入新文件、应用程序崩溃甚至未能启动的情况。常见诱因包括:
了解这种缘由后,我们将通过系统化的方法定位问题并释放空间。
确认根分区已满
在采取行动之前,须要确认根分区是否真的已满,以及什么文件或目录占用了大量空间。以下是确诊步骤和相关命令。
1.检测c盘使用情况
使用df命令查看c盘使用情况,确认根分区是否已满:
df -h
2.定位占用空间的目录
使用du命令剖析根分区中什么目录占用空间最多:
sudo du -h / | grep '[0-9]G'
「解释」:du-h/递归统计根分区下所有目录的大小,grep'[0-9]G'筛选出占用GB级空间的目录。您也可以使用以下命令更精确地定位大文件:sudodu-ah/|sort-rh|head-n20
3.查找大文件
使用find命令快速定位大文件:
sudo find / -type f -size +1G
释放空间
定位问题后,接出来是释放根分区空间的实际操作。以下是多种方式,囊括日志清除、缓存删掉、临时文件处理等。
1.清除系统日志
/var/log目录中的日志文件是根分区满载的常见诱因。以下是清除步骤:
检测日志文件大小
ls -lh /var/log
清除特定日志
以syslog或messages为例,清除旧日志:
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/messages
压缩和归档旧日志
假如须要保留日志,可以压缩并归档:
sudo find /var/log -name "*.log" -exec gzip {} ;
配置日志轮转
为避免日志再度失控,配置logrotate进行手动轮转:
sudo nano /etc/logrotate.conf
在配置文件中调整参数,比如:
/var/log/syslog {
daily
rotate 7
compress
missingok
}
2.清除包管理器缓存
在基于Debian的系统(如Ubuntu)中,APT缓存可能占用大量空间。以下是清除方式:
查看缓存大小
sudo du -sh /var/cache/apt
清除无用包sudoapt-getclean
sudoapt-getautoclean
sudoapt-getautoremove
对于基于RedHat的系统(如CentOS),使用yum或dnf:
sudo yum clean all
sudo dnf clean all
3.清除临时文件
/tmp目录中的临时文件可能累积并占用空间。清除方式如下:
sudo rm -rf /tmp/*
为避免临时文件再度堆积,可以设置手动清除:
sudo systemctl enable tmp.mount
sudo systemctl start tmp.mount
4.删掉旧内核版本
旧内核映像可能占用/boot目录,致使根分区间接受限。查看已安装内核:
dpkg --list | grep linux-image
删掉旧内核:
sudo apt-get purge linux-image-x.x.x-x
5.清除用户缓存
用户缓存文件(如浏览器缓存)可能储存在根分区。查找用户缓存:
sudo du -sh /home/*/.cache
清除缓存:
sudo find /home -type d -name ".cache" -exec rm -rf {}/* ;
6.查找并删掉无用的大文件
假如通过find发觉无用的大文件,可以直接删掉:
sudo rm /path/to/large/file
7.联通数据到其他分区
假如根分区储存了大量用户数据(如/var/www中的网站文件),可以将其联通到其他分区:
sudo mv /var/www /new_partition/www
sudo ln -s /new_partition/www /var/www
防止根分区再度满载
释放空间只是治标,防治才是治本。以下是常年维护的建议:
1.定期监控c盘使用
设置脚本定期检测c盘使用情况:
#!/bin/bash
df -h / | grep -v Filesystem | awk '{print $5}' | cut -d'%' -f1 | while read usage; do
if [ $usage -gt 90 ]; then
echo "警告:根分区使用率超过90%!"
mail -s "磁盘空间警告" admin@example.com <<< "根分区使用率:${usage}%"
fi
done
保存为check_disk.sh,设置定时任务:
sudo crontab -e
添加:
0 0 * * * /bin/bash /path/to/check_disk.sh
2.合理分区规划
在安装Linux时linux 分区命令linux运维博客,合理规界定区。诸如linux vps,将/var、/home和/tmp分配到独立分区,避免它们影响根分区。
3.使用LVM扩充空间
假如使用逻辑卷管理器(LVM)linux 分区命令,可以动态扩充根分区:
sudo lvextend -L +10G /dev/mapper/vg-root
sudo resize2fs /dev/mapper/vg-root
4.启用c盘配额
为用户设置c盘配额,限制其在根分区的储存:
sudo apt-get install quota
sudo quotacheck -avug
sudo quotaon -av
sudo edquota username
常见问题1.删掉文件如何办?
假如删掉了关键文件,立刻停止写入操作,使用testdisk或photorec尝试恢复:
sudo apt-get install testdisk
sudo testdisk /dev/sdX
2.清除时系统卡顿如何办?
假如系统因空间不足而响应平缓,尝试步入单用户模式清除:
sudo systemctl rescue
3.怎样防止破坏系统?