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

相关推荐
TeleostNaCl20 小时前
SMBJ 简单使用指南 实现在 Java/Android 程序中访问 SMB 服务器
android·java·运维·服务器·经验分享·kotlin
知北游天20 小时前
Linux网络:使用UDP实现网络通信(网络套接字的创建&&绑定)
linux·网络·udp
weixin_7499499020 小时前
当没办法实现从win复制东西到Linux虚拟机时的解决办法
linux·运维·服务器
时空自由民.20 小时前
SC3336 rgb sensor linux
linux·运维·服务器
我就要用Cx33020 小时前
微服务配置管理
java·运维·微服务
我好饿120 小时前
自动化运维工具 Ansible 集中化管理服务器
运维·自动化·ansible
東雪蓮☆20 小时前
Ansible 自动化运维:集中化管理服务器实战指南
linux·运维·自动化·ansible
荣光波比20 小时前
自动化运维工具 Ansible:集中化管理服务器完全指南
运维·自动化·云计算·ansible
Cyan_RA920 小时前
Linux 虚拟机软件 VMware Workstation Pro 安装CentOS的相关说明和操作
linux·运维·服务器·centos·vmware·vmtools
一只游鱼20 小时前
Web之防XSS(跨站脚本攻击)
运维·服务器·xxs攻击