如何管理centos的磁盘空间
导读:一、磁盘空间现状查看 要管理CentOS磁盘空间,首先需清晰掌握当前使用情况。常用命令如下: df -h:以易读格式(GB/MB)显示所有挂载点的磁盘使用情况,包括总容量、已用空间、剩余空间及使用百分比,快速识别空间不足的分区(如根分区/...
一、磁盘空间现状查看
要管理CentOS磁盘空间,首先需清晰掌握当前使用情况。常用命令如下:
df -h
:以易读格式(GB/MB)显示所有挂载点的磁盘使用情况,包括总容量、已用空间、剩余空间及使用百分比,快速识别空间不足的分区(如根分区/
)。du -sh *
:递归统计当前目录下各子目录/文件的大小,-s
选项仅显示总计,-h
选项转为易读格式,常用于定位大文件/目录(如du -sh /var/*
查看/var
目录下各子目录大小)。ncdu
:基于文本的交互式磁盘分析工具,比du
更直观。安装命令为sudo yum install ncdu
(CentOS 8及以上用dnf
),运行ncdu /
可扫描根目录,通过方向键浏览目录,按Enter
进入子目录,按d
删除文件/目录。
二、日常空间清理技巧
清理无用文件是释放空间的最有效手段,重点关注以下场景:
- 清理包管理器缓存:YUM/DNF下载的软件包会缓存在
/var/cache/yum
(CentOS 7)或/var/cache/dnf
(CentOS 8及以上),占用大量空间。使用sudo yum clean all
(CentOS 7)或sudo dnf clean all
(CentOS 8及以上)清除缓存。 - 删除临时文件:
/tmp
目录下的临时文件(如用户会话文件、软件临时文件)可安全删除,命令为sudo rm -rf /tmp/*
(注意:避免删除正在使用的临时文件)。 - 清理旧内核:系统更新时会保留旧内核,占用
/boot
分区空间。使用sudo package-cleanup --oldkernels --count=1
保留最新1个内核,删除其余旧内核(需root权限)。 - 清空回收站:用户回收站的文件(如
/home/*/.local/share/Trash/*
)需手动清理,命令为sudo rm -rf /home/*/.local/share/Trash/*
。 - 压缩大文件:对于不常用的大文件(如备份文件、视频、日志),使用
gzip
或zip
压缩,例如gzip large_file.log
(压缩后生成large_file.log.gz
,原文件被删除)。
三、日志文件管理
日志文件(如/var/log/messages
、/var/log/secure
)随时间增长会占用大量空间,需定期维护:
- 截断大日志文件:使用
truncate
命令将大日志文件清空,例如find /var/log -type f -name "*.log" -size +50M -exec truncate -s 0 { } \;
(查找/var/log
下大于50MB的.log
文件并清空)。 - 设置日志轮转:通过
logrotate
工具自动轮转、压缩、删除旧日志。编辑/etc/logrotate.conf
(全局配置)或/etc/logrotate.d/
下的应用配置(如/etc/logrotate.d/nginx
),设置轮转周期(如daily
)、保留份数(如rotate 7
,保留7天日志)、压缩选项(如compress
)。例如,每日轮转Nginx日志并保留7份:/var/log/nginx/*.log { daily missingok rotate 7 compress delaycompress notifempty create 0640 www-data adm }
四、LVM动态扩展(推荐)
若系统使用LVM(逻辑卷管理),可通过以下步骤在线扩展磁盘空间,无需卸载分区或重启系统:
- 添加物理磁盘:物理连接新磁盘,使用
lsblk
确认新磁盘设备名(如/dev/sdb
)。 - 创建物理卷(PV):将新磁盘初始化为物理卷,命令为
sudo pvcreate /dev/sdb
。 - 扩展卷组(VG):将物理卷加入现有卷组(如
centos
),命令为sudo vgextend centos /dev/sdb
。 - 扩展逻辑卷(LV):扩展逻辑卷(如
root
)的大小,例如增加50GB:sudo lvextend -L +50G /dev/mapper/centos-root
(或用-l +100%FREE
使用所有剩余空间)。 - 扩展文件系统:根据文件系统类型调整大小,XFS用
xfs_growfs
(CentOS 7/8默认),Ext4用resize2fs
:sudo xfs_growfs /dev/mapper/centos-root # XFS文件系统 sudo resize2fs /dev/mapper/centos-root # Ext4文件系统
五、非LVM环境扩容
若未使用LVM,需通过分区+格式化+挂载的方式扩展空间:
- 添加物理磁盘:同LVM步骤,确认新磁盘设备名(如
/dev/sdb
)。 - 分区:使用
fdisk /dev/sdb
创建新分区(如/dev/sdb1
),设置分区类型为Linux
(83
),保存退出。 - 格式化:将分区格式化为所需文件系统(如XFS),命令为
sudo mkfs.xfs /dev/sdb1
。 - 创建挂载点并挂载:创建目录(如
/data
),挂载分区:sudo mkdir /data
,sudo mount /dev/sdb1 /data
。 - 持久化挂载:编辑
/etc/fstab
,添加一行(通过blkid
获取分区UUID):
运行UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data xfs defaults 0 0
sudo mount -a
验证挂载是否成功。
六、自动化监控与预警
通过自动化工具定期检查磁盘空间,及时预警避免空间耗尽:
- Cron定时任务:编辑
crontab -e
,添加每日检查命令(如df -h
结果发送到邮箱):0 0 * * * df -h | mail -s "CentOS Disk Space Report" your_email@example.com
- 阈值预警脚本:编写Shell脚本,当磁盘使用率超过阈值(如90%)时发送告警,例如:
将脚本保存为#!/bin/bash THRESHOLD=90 USAGE=$(df / | grep / | awk '{ print $5} ' | sed 's/%//g') if [ "$USAGE" -gt "$THRESHOLD" ]; then echo "Disk space usage on / is over $THRESHOLD%!" | mail -s "Disk Space Alert" your_email@example.com fi
/usr/local/bin/check_disk.sh
,添加执行权限(chmod +x /usr/local/bin/check_disk.sh
),并通过Cron每日运行。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何管理centos的磁盘空间
本文地址: https://pptw.com/jishu/724347.html