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

相关推荐
爱奥尼欧1 天前
【Linux笔记】网络部分——网络层IP协议
linux·网络·笔记
埃伊蟹黄面1 天前
告别手动编译:用Makefile自动化你的Linux项目
linux·服务器
Jonathan Star1 天前
网站识别爬虫(包括以浏览器插件形式运行的爬虫)主要通过分析请求特征、行为模式等差异来区分人类用户和自动化程序
运维·爬虫·自动化
Once_day1 天前
Linux错误(7)接口处于Down状态不通告IPv6地址变更事件
linux·运维·服务器
Bruce_Liuxiaowei1 天前
SMB签名关闭的安全风险探讨
运维·windows·安全·网络安全
任风雨1 天前
15.1.2.linux常见操作用例
linux·服务器
YouEmbedded1 天前
解码LVGL样式
linux·lvgl·lvgl样式
lifejump1 天前
端口隔离技术的实验与验证(eNSP)
linux·服务器·网络
zzzsde1 天前
【Linux】基础指令(4):基础指令&&热键&&shell运行原理
linux·运维·服务器
艾莉丝努力练剑1 天前
【Git:基本操作】深度解析Git:从初始Git到熟悉基本操作
大数据·linux·c++·人工智能·git·gitee·指令