ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

centos7云主机磁盘清理过程纪要

centos7云主机磁盘清理过程纪要

云主机总磁盘大小为120G,在阿里云控制台配置了磁盘使用达90%告警

1. 收到告警短信

image

2. 当前磁盘占用情况

df -h | grep dev
已达到 89%

image

3. 开始排查

3-1. 查看哪个目录占用最大

du -sh /*  或者  du -sh /* | sort -h
发现 /www 目录占用 69G

image

3-2. 查看 /www

du -sh /www/*
/www/wwwlogs 占用16G
/www/wwwroot 占用21G
/www/server 占用31G

image

3-3. 排查 /www/server

du -sh /www/server/* | sort -h
/www/server/nginx 占用19G

image

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

image

3-4. 发现是 /www/server/nginx/logs/access.log 占用 18G

清理
> /www/server/nginx/logs/access.log

image

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%了

image

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" ]; thenecho "清理 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" ]; thenecho "清理 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" ]; thenecho "清理 RocketMQ 日志..."# 删除旧的 log.* 文件,只保留 rocketmq_client.logrm -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 allecho "=== 磁盘清理完成 $(date) ==="
df -h
返回列表