df -h # 查看各分区使用情况
df -i # 查看inode使用情况
# 查看当前目录下各子目录大小
du -h --max-depth=1 | sort -h
# 查找大于100MB的文件
find / -type f -size +100M -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
# 使用ncdu工具进行可视化分析
sudo apt install ncdu # Debian/Ubuntu
sudo yum install ncdu # CentOS/RHEL
ncdu /
# 清理旧日志(保留最近30天)
sudo find /var/log -type f -name "*.log" -mtime +30 -delete
# 使用journalctl清理系统日志
sudo journalctl --vacuum-time=30d # 保留30天日志
sudo journalctl --vacuum-size=500M # 限制日志大小为500MB
# Debian/Ubuntu
sudo apt clean
sudo apt autoremove
# CentOS/RHEL
sudo yum clean all
sudo dnf clean all
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
# Docker清理
docker system prune -a --volumes
# Kubernetes清理
kubectl delete --all pods --namespace=<namespace>
# 查看当前VG空间
sudo vgdisplay
# 扩展物理卷
sudo pvresize /dev/sdX
# 扩展逻辑卷
sudo lvextend -L +10G /dev/mapper/vg-name-lv-name
# 调整文件系统大小
sudo resize2fs /dev/mapper/vg-name-lv-name # ext文件系统
sudo xfs_growfs /mount/point # XFS文件系统
# 查看新磁盘
sudo fdisk -l
# 分区并格式化
sudo fdisk /dev/sdX
sudo mkfs.ext4 /dev/sdX1
# 挂载新分区
sudo mkdir /new_mount
sudo mount /dev/sdX1 /new_mount
# 添加fstab条目实现自动挂载
echo "/dev/sdX1 /new_mount ext4 defaults 0 2" | sudo tee -a /etc/fstab
# 安装配额工具
sudo apt install quota # Debian/Ubuntu
sudo yum install quota # CentOS/RHEL
# 启用配额
sudo mount -o remount,usrquota,grpquota /
sudo quotacheck -cugm /
sudo quotaon -v /
编辑/etc/logrotate.conf
和/etc/logrotate.d/
下的配置文件,例如:
/var/log/app.log {
daily
rotate 7
compress
missingok
notifempty
create 644 root root
}
# 添加cron任务定期检查
echo "0 0 * * * root df -h | mail -s 'Disk Usage Report' admin@example.com" | sudo tee /etc/cron.d/disk-monitor
# 使用监控工具如Prometheus+Grafana设置磁盘使用率告警
sudo mv /var/lib/mysql /big_disk/
sudo ln -s /big_disk/mysql /var/lib/mysql
sudo mount -t overlay overlay -o lowerdir=/readonly,upperdir=/writable,workdir=/work /merged
# 压缩旧日志
sudo find /var/log -name "*.log" -mtime +30 -exec gzip {} \;
# 使用ZFS/Btrfs文件系统的压缩功能
通过以上方法,您可以有效管理Linux系统的磁盘空间,解决空间不足问题,并预防未来可能出现的问题。