CentOS7 服务器磁盘空间清理指南

以下是一个逐步的清理过程,从安全的临时文件开始,到更高级的清理选项:

1. 分析磁盘使用情况

首先,让我们找出哪些目录占用最多空间:

bash
CopyInsert


# 查看最大的目录(前10个)
du -h --max-depth=1 / 2>/dev/null | sort -hr | head -10

# 查看/var目录下最大的子目录
du -h --max-depth=1 /var 2>/dev/null | sort -hr | head -10

# 查看/srv/www目录下各网站大小
du -h --max-depth=1 /srv/www 2>/dev/null | sort -hr

2. 清理临时文件和缓存

bash
CopyInsert


# 清理临时文件
rm -rf /tmp/*
rm -rf /var/tmp/*

# 清理yum缓存
yum clean all

# 清理日志文件
find /var/log -type f -name "*.gz" -delete
find /var/log -type f -name "*.1" -delete
find /var/log -type f -name "*.2" -delete
find /var/log -type f -name "*.old" -delete

3. 清理旧内核

CentOS会保留旧内核,这些可以安全移除(保留当前内核和一个旧内核):

bash
CopyInsert


# 查看已安装的内核
rpm -q kernel

# 清理旧内核(保留最新的两个)
package-cleanup --oldkernels --count=2

4. 清理MariaDB/MySQL数据

bash
CopyInsert


# 优化数据库表
mysql -e "SELECT table_schema, ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) 'Size in MB' FROM information_schema.tables GROUP BY table_schema ORDER BY SUM(data_length + index_length) DESC;"

# 清理二进制日志(根据需要调整保留天数)
mysql -e "PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 7 DAY);"

5. 清理Apache日志

bash
CopyInsert


# 找出并压缩大型日志文件
find /var/log/httpd -type f -name "*.log" -size +10M -exec gzip {} \;

# 或者直接清理旧日志
find /var/log/httpd -type f -name "*.log.*" -mtime +30 -delete

6. 清理备份文件

bash
CopyInsert


# 查找并列出大于100MB的备份文件
find / -type f -name "*.bak" -o -name "*.backup" -o -name "*.sql" -o -name "*.sql.gz" -o -name "*.tar.gz" -size +100M 2>/dev/null

# 清理超过30天的备份文件(请根据需要调整路径)
find /root/web-backups -type d -mtime +30 -exec rm -rf {} \; 2>/dev/null

7. 查找并删除大文件

bash
CopyInsert


# 查找大于100MB的文件
find / -type f -size +100M 2>/dev/null | xargs ls -lh

# 查找大于100MB且超过30天未修改的文件
find / -type f -size +100M -mtime +30 2>/dev/null | xargs ls -lh

8. 清理PHP会话文件

bash
CopyInsert


# 清理旧的PHP会话文件
find /var/lib/php/session -type f -mtime +1 -delete

9. 压缩网站日志

bash
CopyInsert


# 压缩网站目录中的日志文件
find /srv/www -type f -name "*.log" -size +10M -exec gzip {} \;

10. 清理后检查

bash
CopyInsert


# 再次检查磁盘使用情况
df -h

11. 高级选项:使用ncdu工具

如果以上方法不足以释放足够空间,可以安装并使用ncdu工具进行交互式分析:

bash
CopyInsert


# 安装ncdu
yum install -y ncdu

# 分析根目录
ncdu /

安全注意事项

  1. 在删除任何文件前,确保了解其用途
  2. 对重要数据进行备份
  3. 避免删除当前正在使用的文件
  4. 清理后重启相关服务以释放文件句柄

这些步骤应该能帮助您释放大量磁盘空间。如果您需要针对特定目录或文件类型的更具体建议,请提供更多关于您服务器上占用空间最多的目录的信息。

已有 0 条评论 新浪微博
滚动至顶部