Nginx日志定时切割脚本
来源:互联网 发布:苹果自定义铃声mac 编辑:程序博客网 时间:2024/05/19 19:34
nginx的日志文件如果你不处理,将变得越来越大,我们可以写一个nginx日志切割脚本来自动切割日志文件。
第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件。
第二步向nginx主进程发送USR1信号。
nginx主进程接到信号后会从配置文件中读取日志文件名称,重新打开日志文件(以配置文件中的日志名称命名),并以工作进程的用户作为日志文件的所有者。
重新打开日志文件后,nginx主进程会关闭重名的日志文件并通知工作进程使用新打开的日志文件。
工作进程立刻打开新的日志文件并关闭重名名的日志文件。
然后你就可以处理旧的日志文件了。
nginx日志按日期自动切割脚本cut_nginx_log.sh如下:
#!/bin/bash
#by www.elesos.com #设置日志文件存放目录
logs_path="/opt/nginx/html/"
#设置pid文件
pid_path="/opt/nginx/logs/nginx.pid"
#创建日志存放目录
mkdir-p${logs_path}$(date-d"yesterday" +"%Y")/$(date-d"yesterday" +"%m")/
#重命名日志文件
mv ${logs_path}elesos.com.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/elesos.com_$(date -d "yesterday" +"%Y%m%d").log
mv${logs_path}elesos.com.log ${logs_path}$(date-d"yesterday" +"%Y")/$(date-d"yesterday" +"%m")/elesos.com_$(date-d"yesterday" +"%Y%m%d").log#向nginx主进程发信号重新打开日志
kill-USR1`cat${pid_path}`
注意修改上面的日志文件名为你自己的。
然后通过crontab设置作业,参见Linux计划任务cron使用指南
0 0 * * * bash /usr/local/nginx/nginx_log.sh
这样就每天的0点0分把nginx日志重命名为日期格式,并重新生成今天的新日志文件。
艺搜参考
http://www.nginx.cn/255.html
http://www.jb51.net/LINUXjishu/33585.html
0 0
- nginx日志定时切割脚本
- Nginx日志定时切割脚本
- 编写定时切割Nginx日志脚本
- 每天定时切割nginx日志的脚本
- nginx日志切割脚本
- Nginx日志切割脚本
- nginx 日志切割脚本
- nginx日志切割脚本
- nginx日志切割脚本
- 编写每天定时切割Nginx日志的脚本
- 每天定时切割nginx日志
- nginx log日志切割脚本
- Linux下nginx日志每天定时切割
- Linux下定时切割Nginx访问日志并打包压缩的Shell脚本
- Linux下添加shell脚本使得nginx日志每天定时切割压缩
- Linux下添加shell脚本使得nginx日志每天定时切割压缩
- nginx日志切割脚本,自动压缩
- nginx自动切割日志访问文件脚本
- 原生js和jquery两种处理cookie的插件介绍
- Java做txt日志记录
- Zookeeper开源客户端框架Curator简介[转]
- easyui datagrid实现行内编辑一列数据
- git tag — 给某个提交打个标签
- Nginx日志定时切割脚本
- JAVA基础(003_Iterator浅析)
- analyzing-malicious-office-document
- mysql中You can't specify target table for update in FROM clause错误
- 物体跟踪-CVPR16-tracking[上]
- python manage.py runserver启动服务器时出现10013错误
- 有道理,居家旅行必备良药
- SpringMVC4零配置--Web上下文配置【MvcConfig】
- hdu5476Explore Track of Point+平面几何