/var/log
目录下日志文件不断增长/tmp
目录下临时文件未被清理/var/cache
目录下软件包缓存占用空间apt
或 yum
等包管理器的缓存# 查看磁盘使用情况
df -h
# 查找大文件(从根目录开始查找大于100M的文件)
find / -type f -size +100M -exec ls -lh {} \;
# 查找大目录
du -h --max-depth=1 / | sort -h
du -h --max-depth=1 /var | sort -h
# 查看日志文件大小
ls -lh /var/log/
# 清理旧日志(保留最近7天)
find /var/log -type f -mtime +7 -delete
# 配置日志轮转
vim /etc/logrotate.conf
对于Debian/Ubuntu:
apt-get clean
apt-get autoclean
对于CentOS/RHEL:
yum clean all
dnf clean all
# 清理/tmp目录
rm -rf /tmp/*
# 清理系统临时文件
rm -rf /var/tmp/*
# 查找被删除但仍被进程占用的文件
lsof | grep deleted
# 重启相关进程或系统以释放空间
systemctl restart service-name
创建定期清理脚本 /usr/local/bin/cleanup.sh
:
#!/bin/bash
# 清理日志
find /var/log -type f -mtime +7 -delete
# 清理包缓存
if [ -f /etc/debian_version ]; then
apt-get clean
apt-get autoclean
elif [ -f /etc/redhat-release ]; then
yum clean all
fi
# 清理临时文件
rm -rf /tmp/*
rm -rf /var/tmp/*
# 发送通知
echo "Disk cleanup completed on $(date)" | mail -s "Disk Cleanup Report" admin@example.com
设置定时任务:
chmod +x /usr/local/bin/cleanup.sh
crontab -e
# 添加以下内容(每周日凌晨3点执行)
0 3 * * 0 /usr/local/bin/cleanup.sh
monit
或 prometheus
通过以上方法和预防措施,可以有效管理和控制Linux系统的磁盘空间使用。