一、查看磁盘空间使用情况
要有效管理磁盘空间,首先需要清晰掌握当前磁盘的占用状况。常用命令如下:
df -h:以人类可读格式(GB、MB)显示所有挂载文件系统的磁盘使用情况,包括总大小、已用空间、可用空间及使用百分比,重点关注/(根分区)、/var(日志、缓存目录)等关键分区。du -sh *:显示当前目录下各子目录及文件的总大小(-s汇总,-h易读),可递归进入占用大的目录(如/var)进一步分析。ncdu:基于文本的交互式磁盘分析工具,更直观地展示目录大小排名(需安装:sudo yum install ncdu),帮助快速定位大文件或目录。二、清理无用文件与缓存
清理系统中的临时文件、缓存及旧数据是释放空间的最有效手段之一:
/var/cache/yum或/var/cache/dnf目录。使用sudo yum clean all(或sudo dnf clean all)清理缓存。/tmp(临时文件,默认开机清空)、/var/tmp(长期临时文件)目录下的文件可安全删除(避免正在使用的文件):sudo rm -rf /tmp/* && sudo rm -rf /var/tmp/*。/boot目录),占用大量空间。使用package-cleanup --oldkernels --count=2保留最新2个内核,删除旧版本(需root权限)。package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y查找并删除这些包。composer clear-cache;浏览器缓存(如Chrome):手动清理或通过配置自动清理。三、日志文件管理
日志文件(如/var/log/messages、/var/log/secure)随时间增长会占用大量空间,需定期清理:
truncate命令将日志文件大小置零(不删除文件,避免影响正在运行的服务):sudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;。find命令删除修改时间超过30天的日志文件:sudo find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;。logrotate工具自动化日志管理(默认配置位于/etc/logrotate.conf),设置日志文件的最大大小、保留天数及压缩策略(如/var/log/messages每周轮转,保留4周)。四、磁盘分区与LVM管理
若清理后仍空间不足,需通过分区调整或LVM扩展存储:
fdisk /dev/sdX创建新分区,partprobe刷新分区表);pvcreate /dev/sdXY,vgextend centos /dev/sdXY,centos为卷组名);lvextend -L +10G /dev/mapper/centos-root,+10G表示增加10GB,或-l +100%FREE使用所有剩余空间);xfs_growfs /;Ext4:resize2fs /dev/mapper/centos-root)。fdisk -l,如/dev/sdb);fdisk /dev/sdb,创建主分区/dev/sdb1);mkfs.xfs /dev/sdb1或mkfs.ext4 /dev/sdb1);mkdir /data_new,mount /dev/sdb1 /data_new);/etc/fstab,添加UUID=<新分区UUID> /data_new xfs defaults 0 0,通过blkid获取UUID)。五、监控与预防
定期监控磁盘空间使用情况,避免再次出现空间不足:
cron任务每天运行df -h和du -sh /*,将结果发送到管理员邮箱(如0 0 * * * /bin/bash -c 'df -h >> /var/log/disk_usage.log; du -sh /* >> /var/log/disk_usage.log')。Nagios、Zabbix等监控工具,当磁盘使用率超过80%时触发告警。/、/var、/home),避免单个分区占用过大(如/var单独分区,防止日志占满根分区)。