NGINX 日志文件切割及管理
2015-12-15 11:58
633 查看
NGINX或者其他容器都存在同样的问题,就是日志文件不会自动分隔和备份,需要个性化管理。毕竟有理由相信文件越大,读写越费劲。
代码如下,实现的功能就是通过bakuppath、logpath、days、pidpath四个变量来调整自己服务的路径,然后配置定时JOB,让系统每天凌晨备份日志文件,备份完之后压缩为以事件命名的tar文件中做归档。
附:
定时任务的语法说明和日志
http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt145
代码如下,实现的功能就是通过bakuppath、logpath、days、pidpath四个变量来调整自己服务的路径,然后配置定时JOB,让系统每天凌晨备份日志文件,备份完之后压缩为以事件命名的tar文件中做归档。
#!/bin/sh bakuppath="/home/ngi****logs/" logpath="/home/wwwlogs/a****ss.log /home/wwwlogs/ng****rror.log" days=30 pidpath="/usr/local/nginx/logs/nginx.pid" nginxpath="/usr/local/nginx/sbin/" mv ${logpath} -t ${bakuppath} # kill -USR1 `cat ${pidpath}` # need root cd ${nginxpath} nginxpid=`cat ${pidpath}` ps -u www -f | grep ${nginxpid} | grep 'nginx' | awk '{print $2}' | xargs -i kill -USR1 {} # -HUP or -USR1 signal are ok cd ${bakuppath} #tar -zcf nginxlog_$(date -d "yesterday" +"%Y%m%d").tar * tar -zcf nginxlog_$(date -d "yesterday" +"%Y%m%d%H%M%S").tar * find ${bakuppath} -name nginxlog_*.tar -type f -mtime +$days -exec rm {} \; #添加脚本执行权限 # chmod +x logmanager.sh # 添加任务计划,修改/etc/crontab # vi /etc/crontab #在最后一行添加 # 或者使用crontab -e命令,编辑当前用户下的定时任务 # 0 0 * * * /home/nginxlogs/logmanager.sh #表示每天凌晨执行 # */5 * * * * /home/nginxlogs/logmanager.sh #表示每天凌晨执行 测试使用
附:
定时任务的语法说明和日志
http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt145
相关文章推荐
- nginx代理指定目录
- 访问Nginx发生SSL connection error的一种情况
- Nginx+Naxsi部署专业级Web应用防火墙
- CentOS 6.2实战部署Nginx+MySQL+PHP
- nginx中http核心模块的配置指令2
- nginx中http核心模块的配置指令3
- nginx中http核心模块的配置指令4
- nginx中http的fastcgi模块的配置指令1
- Nginx 学习笔记(一)
- 网站502与504错误分析
- 艰难完成 nginx + puma 部署 rails 4的详细记录
- 把Lua编译进nginx步骤方法
- web 应用中常用的各种 cache详解
- Linux系统上配置Nginx+Ruby on Rails+MySQL超攻略
- window+nginx+php环境配置 附配置搭配说明
- 解析CI即CodeIgniter框架在Nginx下的重写规则
- 将PHP从5.3.28升级到5.3.29时Nginx出现502错误
- 基于Nginx0.8.54+PHP5.3.4+MySQL5.5.8的全新LNMP稳定版架构搭建的VPS
- Nginx(PHP/fastcgi)的PATH_INFO问题