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 可能会继续写入已删除的文件,导致磁盘空间未被释放。

相关推荐
躺不平的理查德43 分钟前
嵌入式 Linux 系统移植与 SD 卡量产镜像制作
linux·运维·服务器
一直走下去-明2 小时前
centos7无法安装tcpreplay
linux·运维
吹什么轩2 小时前
linux网络:TCP套接字基础
linux·网络·tcp/ip
anxiao_m2 小时前
园区数字孪生怎么搭建?主流方案与服务商深度对比
大数据·运维·人工智能
时空无限3 小时前
ubuntu dpkg -l 输出第一列解释
linux·运维·ubuntu
Splashtop高性能远程控制软件3 小时前
AI 落地的连接基建评估:消费品行业远程连接方案的四个技术维度(性能 / 精度 / 安全 / 统一管理)
运维·人工智能·安全·远程工作·splashtop
ITyunwei09874 小时前
技术管理者视角:AI 重构 ITSM 的四个工程化落点
运维·人工智能
叮咚侠5 小时前
Ubuntu 24.04 安装zabbix-agent 5.0 服务
linux·ubuntu·zabbix·zabbix-agent
666_qq_403882336 小时前
Tabstack 浏览器自动化实战应用指南
运维·自动化
fatcoder7 小时前
玩转Nginx 04 — 反向代理:给 nginx 接上后端
前端·后端·nginx