centos磁盘空间不足如何清理
CentOS磁盘空间不足清理指南
当CentOS系统提示磁盘空间不足时,可通过定位大文件/目录、清理无用文件、管理软件包/内核、优化日志等方式释放空间,以下是具体步骤:
一、优先定位大文件/目录(关键前提)
在清理前,需先明确占用空间的“罪魁祸首”,避免盲目删除。常用命令如下:
-
查看磁盘分区使用情况:
df -h
重点关注
Use%
列,找出使用率高的分区(如/
、/var
)。 -
查找占用空间大的目录:
du -sh /* | sort -rh | head -n 10 # 查看根目录下最大的10个目录 du -sh /var/* | sort -rh | head -n 10 # 重点检查/var目录(常含日志、缓存)
-
查找大文件(如大于100MB):
find / -type f -size +100M -exec ls -lh { } \; # 列出所有大于100MB的文件 find /var/log -type f -size +50M -exec ls -lh { } \; # 重点检查/var/log下的日志文件
-
交互式磁盘分析工具(推荐):
安装ncdu
(文本界面,更直观):sudo yum install ncdu -y
扫描指定目录(如根目录):
ncdu /
通过方向键导航,按
Enter
进入子目录,按d
删除文件/目录(谨慎操作)。
二、清理无用文件(快速释放空间)
-
清理临时文件:
/tmp
和/var/tmp
目录下的临时文件可安全删除:rm -rf /tmp/* /var/tmp/*
-
清理YUM缓存:
YUM包管理器会缓存下载的软件包,占用/var/cache/yum
空间:sudo yum clean all # 清理所有YUM缓存
-
清理旧日志文件:
日志文件(如/var/log/messages
、/var/log/secure
)可能占用大量空间,可通过以下方式清理:- 手动删除旧日志:
find /var/log -type f -name "*.log.*" -mtime +30 -exec rm -f { } \; # 删除30天前的日志
- 使用journalctl压缩日志:
sudo journalctl --vacuum-time=7d # 只保留最近7天的日志 sudo journalctl --vacuum-size=500M # 限制日志文件总大小为500MB
- 清空日志文件(谨慎使用):
cat /dev/null > /var/log/messages # 清空messages日志(需root权限)
- 手动删除旧日志:
-
清理Docker无用数据(若有Docker):
Docker容器、镜像、卷可能占用大量空间:docker system prune -a # 删除所有停止的容器、未使用的网络、悬空镜像
三、管理软件包与内核(释放系统空间)
-
删除不需要的软件包:
卸载不再使用的软件包(如旧版本的软件):sudo yum remove package_name -y # 替换为具体软件包名
-
清理孤立依赖:
删除软件包安装后不再需要的依赖:sudo yum autoremove -y
-
删除旧内核版本:
系统更新后会保留旧内核,占用/boot
分区空间。先查看已安装的内核:rpm -q kernel # 列出所有内核版本
再删除旧内核(保留最新1-2个):
sudo package-cleanup --oldkernels --count=2 -y # 只保留最新的2个内核
四、扩展磁盘空间(长期解决方案)
若清理后仍空间不足,需通过扩展分区或添加新磁盘解决:
-
LVM扩展(推荐,支持在线扩容):
若系统使用LVM(逻辑卷管理),可通过以下步骤扩展:- 添加新物理卷(若有新磁盘,如
/dev/sdb
):sudo pvcreate /dev/sdb
- 扩展卷组(将新物理卷加入现有卷组,如
centos
):sudo vgextend centos /dev/sdb
- 扩展逻辑卷(增加逻辑卷大小,如
centos-root
):sudo lvextend -L +10G /dev/mapper/centos-root # 增加10GB
- 扩展文件系统(调整文件系统大小以使用新空间):
- 若为XFS文件系统:
sudo xfs_growfs / # 扩展根分区
- 若为ext4文件系统:
sudo resize2fs /dev/mapper/centos-root
- 若为XFS文件系统:
- 添加新物理卷(若有新磁盘,如
-
非LVM扩展(传统分区):
若未使用LVM,需通过fdisk
创建新分区、格式化并挂载:- 查看磁盘信息:
sudo fdisk -l
- 创建新分区:
按提示创建分区(如sudo fdisk /dev/sdb # 替换为新磁盘
/dev/sdb1
)。 - 格式化分区:
sudo mkfs.ext4 /dev/sdb1 # 格式化为ext4
- 挂载分区:
sudo mkdir /newdata # 创建挂载点 sudo mount /dev/sdb1 /newdata # 临时挂载
- 持久化挂载(修改
/etc/fstab
):echo "/dev/sdb1 /newdata ext4 defaults 1 2" | sudo tee -a /etc/fstab
- 查看磁盘信息:
五、预防措施(避免再次出现空间不足)
- 设置日志轮转:
使用logrotate
工具自动压缩、删除旧日志(默认已配置,可修改/etc/logrotate.conf
调整策略)。 - 定期清理:
通过cron
定时任务(如每周日凌晨2点)运行清理脚本:0 2 * * 0 /usr/bin/find /tmp -type f -mtime +7 -exec rm -f { } \; # 删除/tmp下7天前的文件
- 监控磁盘空间:
使用cron
定期运行df -h
,并将结果发送到邮箱:0 8 * * * /bin/df -h | mail -s "CentOS磁盘空间报告" admin@example.com
- 使用图形化工具(可选):
如Baobab
(磁盘使用分析器),可视化查看磁盘空间使用情况:sudo yum install baobab -y baobab
注意事项:
- 清理前务必备份重要数据(如
/home
、/etc
); - 删除系统文件(如
/boot
、/etc
)前需确认其用途,避免系统崩溃; - 扩展分区或文件系统时,需确保磁盘有足够未分配空间。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos磁盘空间不足如何清理
本文地址: https://pptw.com/jishu/718822.html