nginx定期清理日志

原创作者:运维工程师 谢晋

nginx定期清理日志

  1. 创建脚本clean_nginx_logs.sh

    vi clean_nginx_logs.sh

    #!/bin/bash

    定义日志文件路径

    LOG_DIR="/var/log/nginx"
    ACCESS_LOG="access.log"
    ERROR_LOG="error.log"

    定义保留日志的天数

    DAYS_TO_KEEP=7

    清理访问日志

    find LOG_DIR -name "ACCESS_LOG*" -type f -mtime +$DAYS_TO_KEEP -exec rm -f {} ;

    清理错误日志

    find LOG_DIR -name "ERROR_LOG*" -type f -mtime +$DAYS_TO_KEEP -exec rm -f {} ;

    重新加载 Nginx 以重新打开日志文件

    nginx -s reload

    echo "Nginx logs older than $DAYS_TO_KEEP days have been cleaned up."

  2. 保存脚本后,确保它具有可执行权限

    chmod +x /path/to/clean_nginx_logs.sh

  3. 设置定时任务

    crontab -e

    0 2 * * * /path/to/clean_nginx_logs.sh

注意事项

日志切割:如果你使用 logrotate 来管理 Nginx 日志,可能不需要手动清理日志文件。logrotate 可以自动处理日志文件的轮转和删除。

Nginx 重载:在删除日志文件后,脚本会重新加载 Nginx 以确保日志文件被重新打开。如果你不使用 nginx -s reload,Nginx 可能会继续写入已删除的文件,导致磁盘空间未被释放。

相关推荐
BestOrNothing_20158 分钟前
Ubuntu 22.04 下调整 VS Code 界面及字体教程
linux·vscode·ubuntu22.04·界面调整
Zero-Talent17 分钟前
TCP/IP协议
运维·服务器·网络
桌面运维家19 分钟前
Windows/Linux云桌面:高校VDisk方案部署指南
linux·运维·windows
Du_chong_huan22 分钟前
1.7 计算机网络和因特网的历史 | 《计算机网络:自顶向下方法》精读版
运维·服务器·网络
ZZZKKKRTSAE31 分钟前
rhel9快速上手Docker
运维·docker·容器
筱顾大牛31 分钟前
Docker安装教程(加汉化!超详细!!!)
运维·docker·容器
没头脑的男大33 分钟前
关于tailscale和ssh那些事儿
运维·服务器·ssh
mzhan01739 分钟前
Linux:intel:Cache Allocation tech
linux·cpu
竹之却1 小时前
OpenClaw 接入QQ-Bot + 接入Feishu(飞书)
运维·服务器·飞书·openclaw·qq-bot·opencalw接入qq+飞书
九成宫1 小时前
安装和配置Docker教程(装在其他盘)
运维·docker·容器