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

相关推荐
航Hang*5 分钟前
Windows Server 配置与管理——第12章:配置数字证书服务器
运维·服务器·windows
Edward111111111 小时前
linux创建普通用户
linux·运维·服务器
mzhan0172 小时前
Linux: rcu: 加速宽限期
linux·rcu
Fanfanaas2 小时前
Linux 基础开发工具(二)
linux·运维·服务器·c语言
雾岛听蓝2 小时前
Linux线程基础
linux·开发语言·经验分享
齐落山大勇2 小时前
Linux的文件IO
linux·运维·服务器
七七powerful2 小时前
运维养龙虾--Tmux 终端复用器完全指南:从入门到 AI Agent 远程操控
运维·服务器·人工智能
tod1133 小时前
深入解析ext2文件系统架构
linux·服务器·c++·文件系统·ext
萧行之3 小时前
FRP 0.62.0 + Mac Ollama 公网穿透部署+排障实录(标准 TOML 格式)
linux·服务器
齐潇宇3 小时前
文件共享服务器
linux·运维·网络·文件共享