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

相关推荐
失因2 小时前
SELinux 安全机制详解与管理
linux·运维·安全·centos
CtrlZ学习录3 小时前
安全引导功能及ATF的启动过程(五)
linux·安全·架构·开源·可信计算技术
MANONGMN4 小时前
【走进Docker的世界】Docker的发展历程
运维·docker·容器
阿雄不会写代码4 小时前
Amazon Linux 训练lora模型的方式
linux·运维·服务器
Bruce_Liuxiaowei5 小时前
绕过文件上传漏洞并利用文件包含漏洞获取系统信息的技术分析
运维·网络安全·php·apache
monster_风铃7 小时前
华为实验:DHCP 典型配置
运维·服务器·网络
珹洺8 小时前
Linux操作系统从入门到实战(十八)在Linux里面怎么查看进程
linux·运维·服务器
源猿人9 小时前
nginx代理如何配置和如何踩到坑篇
前端·nginx
陌上阳光10 小时前
fio文件读写io带宽测试工具
linux·io·fio·文件测试
企鹅侠客11 小时前
Docker 跨主机容器之间的通信macvlan
运维·docker·容器·macvlan·docker容器跨主机通信