直接让豆包来清理垃圾,然后可以,php可以启动了。

一、一行代码,直接运行

#!/bin/bash; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'; echo -e "${GREEN}===== 开始清理核心日志 =====${NC}"; LOG_PATHS=("/usr/local/nginx/logs/access.log" "/usr/local/openresty/nginx/logs/access.log" "/www/server/nginx/logs/access.log" "/var/log/nginx/access.log" "/usr/local/nginx/logs/error.log" "/usr/local/openresty/nginx/logs/error.log" "/www/server/nginx/logs/error.log" "/var/log/nginx/error.log"); for LOG in "${LOG_PATHS[@]}"; do [ -f "$LOG" ] && > "$LOG" && echo -e "${GREEN}✅ 已清空:$LOG${NC}"; done; PHP_LOG_PATHS=("/usr/local/php/var/log/php-fpm.log" "/www/server/php/*/var/log/php-fpm.log" "/var/log/php-fpm.log" "/usr/local/php7/var/log/php-fpm.log" "/usr/local/php8/var/log/php-fpm.log"); for LOG in "${PHP_LOG_PATHS[@]}"; do if echo "$LOG" | grep -q '*'; then for REAL_LOG in $LOG; do [ -f "$REAL_LOG" ] && > "$REAL_LOG" && echo -e "${GREEN}✅ 已清空:$REAL_LOG${NC}"; done; elif [ -f "$LOG" ]; then > "$LOG" && echo -e "${GREEN}✅ 已清空:$LOG${NC}"; fi; done; echo -e "\n${GREEN}===== 清理系统临时文件 =====${NC}"; > /var/log/messages 2>/dev/null; > /var/log/secure 2>/dev/null; rm -rf /tmp/* /var/tmp/* /var/lib/php/session/* 2>/dev/null; command -v yum >/dev/null && yum clean all >/dev/null 2>&1; command -v apt >/dev/null && apt clean all >/dev/null 2>&1; echo -e "${GREEN}✅ 已清理系统日志/临时文件/软件缓存${NC}"; echo -e "\n${GREEN}===== 重启核心服务 =====${NC}"; SERVICES=("nginx" "php-fpm" "mysqld" "mysql"); for SERVICE in "${SERVICES[@]}"; do if systemctl is-active --quiet $SERVICE; then systemctl reload $SERVICE 2>/dev/null || systemctl restart $SERVICE 2>/dev/null; echo -e "${GREEN}✅ $SERVICE 重启成功${NC}"; fi; done; echo -e "\n${GREEN}===== 清理完成 - 磁盘状态 =====${NC}"; df -h | grep -E 'Filesystem|/dev/vda1|/dev/sda1'; echo -e "\n${GREEN}===== 核心服务状态 =====${NC}"; for SERVICE in "${SERVICES[@]}"; do STATUS=$(systemctl status $SERVICE --no-pager 2>/dev/null | grep Active | awk '{print $2}'); [ -n "$STATUS" ] && echo -e "$SERVICE: ${GREEN}$STATUS${NC}"; done

二、保存为脚本文件(推荐,可重复使用):

#!/bin/bash
# 通用磁盘清理脚本(适配 Nginx/OpenResty/宝塔/自定义环境)
# 核心:清理日志+临时文件+重启服务,无环境限制

# 颜色定义(可选,去掉不影响功能)
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'

# ====================== 核心清理:Nginx/OpenResty 日志(全路径适配) ======================
echo -e "${GREEN}===== 开始清理核心日志 =====${NC}"
# 覆盖所有常见日志路径(Nginx/OpenResty/宝塔)
LOG_PATHS=(
    "/usr/local/nginx/logs/access.log"
    "/usr/local/openresty/nginx/logs/access.log"
    "/www/server/nginx/logs/access.log"  # 宝塔 Nginx 路径
    "/var/log/nginx/access.log"
    "/usr/local/nginx/logs/error.log"
    "/usr/local/openresty/nginx/logs/error.log"
    "/www/server/nginx/logs/error.log"   # 宝塔 Nginx 路径
    "/var/log/nginx/error.log"
)
# 清空日志(仅清理存在的文件,不中断脚本)
for LOG in "${LOG_PATHS[@]}"; do
    if [ -f "$LOG" ]; then
        > "$LOG"
        echo -e "${GREEN}✅ 已清空:$LOG${NC}"
    fi
done

# ====================== 清理 PHP-FPM 日志(适配所有环境) ======================
PHP_LOG_PATHS=(
    "/usr/local/php/var/log/php-fpm.log"
    "/www/server/php/*/var/log/php-fpm.log"  # 宝塔多版本 PHP 路径
    "/var/log/php-fpm.log"
    "/usr/local/php7/var/log/php-fpm.log"
    "/usr/local/php8/var/log/php-fpm.log"
)
for LOG in "${PHP_LOG_PATHS[@]}"; do
    # 兼容宝塔通配符路径
    if echo "$LOG" | grep -q '*'; then
        for REAL_LOG in $LOG; do
            [ -f "$REAL_LOG" ] && > "$REAL_LOG" && echo -e "${GREEN}✅ 已清空:$REAL_LOG${NC}"
        done
    elif [ -f "$LOG" ]; then
        > "$LOG"
        echo -e "${GREEN}✅ 已清空:$LOG${NC}"
    fi
done

# ====================== 清理系统临时文件(所有环境通用) ======================
echo -e "\n${GREEN}===== 清理系统临时文件 =====${NC}"
> /var/log/messages 2>/dev/null
> /var/log/secure 2>/dev/null
rm -rf /tmp/* /var/tmp/* /var/lib/php/session/* 2>/dev/null
# 兼容 yum/apt 两种包管理器
command -v yum >/dev/null && yum clean all >/dev/null 2>&1
command -v apt >/dev/null && apt clean all >/dev/null 2>&1
echo -e "${GREEN}✅ 已清理系统日志/临时文件/软件缓存${NC}"

# ====================== 重启核心服务(通用 systemctl 命令) ======================
echo -e "\n${GREEN}===== 重启核心服务 =====${NC}"
# 重启 Nginx/PHP-FPM/MySQL(失败不报错,兼容无对应服务的环境)
SERVICES=("nginx" "php-fpm" "mysqld" "mysql")  # 兼容 mysql/mysqld 服务名
for SERVICE in "${SERVICES[@]}"; do
    if systemctl is-active --quiet $SERVICE; then
        systemctl reload $SERVICE 2>/dev/null || systemctl restart $SERVICE 2>/dev/null
        echo -e "${GREEN}✅ $SERVICE 重启成功${NC}"
    fi
done

# ====================== 基础验证(通用) ======================
echo -e "\n${GREEN}===== 清理完成 - 磁盘状态 =====${NC}"
df -h | grep -E 'Filesystem|/dev/vda1|/dev/sda1'  # 兼容常见根分区
echo -e "\n${GREEN}===== 核心服务状态 =====${NC}"
for SERVICE in "${SERVICES[@]}"; do
    STATUS=$(systemctl status $SERVICE --no-pager 2>/dev/null | grep Active | awk '{print $2}')
    [ -n "$STATUS" ] && echo -e "$SERVICE: ${GREEN}$STATUS${NC}"
done
# 创建脚本
vim /root/clean_general.sh
# 粘贴极简通用版脚本内容
chmod +x /root/clean_general.sh
# 执行
/root/clean_general.sh

其他:豆包给的啊,没测试

其他:

一键配置日志轮转(通用版,适配所有环境)

# 极简日志轮转配置(仅核心规则,无重启/压缩可选)
echo -e "/usr/local/nginx/logs/*.log\n/usr/local/openresty/nginx/logs/*.log\n/var/log/nginx/*.log {\n    daily\n    rotate 7\n    missingok\n    notifempty\n}\n/usr/local/php/var/log/*.log {\n    daily\n    rotate 7\n    missingok\n    notifempty\n}" > /etc/logrotate.d/general_logs && echo "✅ 极简版日志轮转配置成功"

无需等凌晨,可执行以下命令查看系统的 logrotate 定时任务,确认配置会被自动执行:

# 查看 logrotate 定时任务
cat /etc/cron.daily/logrotate
# 输出包含 "/usr/sbin/logrotate /etc/logrotate.conf" 即为正常

系统会每天执行 /etc/cron.daily/logrotate,自动读取 /etc/logrotate.d/ 下的所有配置(包括你刚创建的 general_logs)。

一行代码恢复原样(删除日志轮转配置)

find /usr/local/openresty/nginx/logs/ /usr/local/nginx/logs/ -name "*.log-*" -delete && echo "✅ 已删除轮转生成的旧日志"

仅删除我们创建的 general_logs 配置文件,不影响系统原有配置;
删除后,日志会回到「一直写入、不自动切分 / 删除」的原始状态;
已切分的旧日志不会被删除,如需清理可手动删 .log-日期/.log.gz 文件。