centos7云主机磁盘清理过程纪要
云主机总磁盘大小为120G,在阿里云控制台配置了磁盘使用达90%告警
1. 收到告警短信

2. 当前磁盘占用情况
df -h | grep dev
已达到 89%

3. 开始排查
3-1. 查看哪个目录占用最大
du -sh /* 或者 du -sh /* | sort -h
发现 /www 目录占用 69G

3-2. 查看 /www
du -sh /www/*
/www/wwwlogs 占用16G
/www/wwwroot 占用21G
/www/server 占用31G

3-3. 排查 /www/server
du -sh /www/server/* | sort -h
/www/server/nginx 占用19G

du -sh /www/server/nginx/* 2>/dev/null | sort -h
/www/server/nginx/logs 占用18G

3-4. 发现是 /www/server/nginx/logs/access.log 占用 18G
使用此命令只删除日志,不删除文件,nginx可正常写入日志
清理
> /www/server/nginx/logs/access.log

3-5. 同样的方式找出其他目录占用大的文件
清理
> /www/wwwlogs/java/springboot/xxx.log
rm -f /root/logs/rocketmqlogs/rocketmq_client.log.[0-9]*
> /root/logs/rocketmqlogs/rocketmq_client.log
4. 清理完后查看磁盘占用
df -h | grep dev
只占用 52%了

5. 根据上面的操作编写清理脚本 cleanup_disk.sh
下次再有告警直接执行清理脚本即可
#!/bin/bash
# cleanup_disk.sh
# 安全清理云主机日志和缓存
# 执行前请确保你是 root 用户
echo "=== 开始磁盘清理 $(date) ==="
# --- 1. 清理 Nginx 日志 ---
NGINX_LOG_DIR="/www/server/nginx/logs"
if [ -d "$NGINX_LOG_DIR" ]; then
echo "清理 Nginx 日志..."
for f in "$NGINX_LOG_DIR"/*.log; do
[ -f "$f" ] && > "$f"
done
fi
# --- 2. 清理 Spring Boot 日志 ---
SPRING_LOG_DIR="/www/wwwlogs/java/springboot"
if [ -d "$SPRING_LOG_DIR" ]; then
echo "清理 Spring Boot 日志..."
for f in "$SPRING_LOG_DIR"/*.log; do
[ -f "$f" ] && > "$f"
done
fi
# --- 3. 清理 RocketMQ 日志 ---
ROCKETMQ_LOG_DIR="/root/logs/rocketmqlogs"
if [ -d "$ROCKETMQ_LOG_DIR" ]; then
echo "清理 RocketMQ 日志..."
# 删除旧的 log.* 文件,只保留 rocketmq_client.log
rm -f "$ROCKETMQ_LOG_DIR"/rocketmq_client.log.[0-9]*
# 清空当前日志
[ -f "$ROCKETMQ_LOG_DIR/rocketmq_client.log" ] && > "$ROCKETMQ_LOG_DIR/rocketmq_client.log"
fi
# --- 4. 清理 /root 下安装包 ---
echo "清理 /root 下安装包..."
rm -f /root/*.tar.gz /root/*.tar.bz2
# --- 5. 清理 yum 缓存 ---
echo "清理 yum 缓存..."
yum clean all
echo "=== 磁盘清理完成 $(date) ==="
df -h

浙公网安备 33010602011771号