Jeson老师写的nginx切割脚本
#Jeson
#Email:jeson@iaskjob.com
#变量定义:access、error日志文件列表
NGINX_LOG=(imoocc_com_access iaskjob_com error)
NGINX_ACCESS_PATH=/opt/logs/nginx/access
NGINX_ERROR_PATH=/opt/logs/nginx/error
#日期变量
Ydate=`date -d yesterday +%Y%m%d`
Adate=`date -d "20 days ago" +%Y%m%d`
#PID文件和nginx.conf中定义一致
Nginxpid=/opt/app/nginx/nginx.pid
#日志的量,超过此值,触发切割
Max_size=
file_size="NULL"
#函数Get_Size,获取日志文件的大小。
#rotate funcation
function Get_Size(){
logfile=$
file_size=`ls -l ${logfile}awk '{print $5}'`
if [[ $file_size =~ [-]* ]];then
echo $file_size
else
echo "error:cant get file ${logfile} size!"
exit
fi
}
#函数Log_Rotate,完成日志轮转切割。
# rename log
function Log_Rotate(){
SIZE=$
ACCESS_FILE=$
BACK_DIR=$
echo "==============$SIZE $ACCESS_FILE"
if [ $SIZE == "NULL" ];then
echo "######00000000"
if [ ! -d ${BACK_DIR} ];then
mkdir ${BACK_DIR}
fi
mv -f ${ACCESS_FILE} ${BACK_DIR}/${Ydate}.log
touch ${ACCESS_FILE}
rm ${BACK_DIR}/${Adate}.log
elif [ $SIZE -gt $Max_size ];then
echo "#######11111111"
if [ ! -d ${BACK_DIR} ];then
mkdir ${BACK_DIR}
fi
mv -f ${ACCESS_FILE} ${BACK_DIR}/${Ydate}.log
touch ${ACCESS_FILE}
rm ${BACK_DIR}/${Adate}.log
fi
}
#主功能段,作用遍历日志,输入参数为size,则按照size进行切割,如果为day,则按照日常轮转进行。
for logname in ${NGINX_LOG[@]}
do
if [ ${logname} == 'error' ];then
LOG_FILE=${NGINX_ERROR_PATH}/${logname}.log
BACK_DIR=${NGINX_ERROR_PATH}/${logname}
else
LOG_FILE=${NGINX_ACCESS_PATH}/${logname}.log
BACK_DIR=${NGINX_ACCESS_PATH}/${logname}
fi
if [ $ == "size" ];then
file_size=`Get_Size ${LOG_FILE}`
Log_Rotate ${file_size} ${LOG_FILE} ${BACK_DIR}
echo $file_size
elif [ $ == "day" ];then
Log_Rotate ${file_size} ${LOG_FILE} ${BACK_DIR}
else
echo "Param : $logname error!"
fi
done
#給nginx发送一个信号量,让nginx重载,重新重新生成日志
## restart nginx
[ ! -f $Nginxpid ] kill -USR1 $(cat $Nginxpid)
Jeson老师写的nginx切割脚本的更多相关文章
- Nginx日志定时切割脚本
nginx的日志文件如果你不处理,将变得越来越大,我们可以写一个nginx日志切割脚本来自动切割日志文件. 第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志.在你未重新打开 ...
- nginx切割日志脚本
nginx切割日志脚本 #!/bin/bash #cut nginx log #2018年9月26日14:26:44 #by jiajiezhao ########################## ...
- Nginx Java 日志切割脚本
Nginx日志切割脚本: #!/bin/bash ########################################################################### ...
- nginx学习笔记(四)-----日志切割脚本及定时任务
一.日志切割脚本 #!/bin/sh #nginx目录 BASE_DIR=/usr/local/nginx #生成的日志 BASE_FILE_NAME=jonychen.access.log CURR ...
- shell按日期自动切割nginx日志脚本
shell按日期自动切割nginx日志脚本 参考:自学it网 http://www.zixue.it/. #nginx日志切割脚本 #author:ce #!/bin/bash #设置日志文件存放目录 ...
- nginx日志按日期自动切割脚本
#!/bin/bash #nginx日志切割脚本 #author:setevn #设置日志文件存放目录 logs_path="/usr/local/nginx/logs/" #设置 ...
- linux Nginx 日志脚本
这篇文章主要介绍了nginx日志切割脚本.nginx日志分析脚本等,需要的朋友可以参考下. 参考自:http://www.jbxue.com/article/13927.html 任务计划 cront ...
- 如何写SysV服务管理脚本
本文目录: 1.1 SysV脚本的特性1.2 SysV脚本要具备的能力1.3 start函数分析1.4 stop函数分析1.5 reload函数分析1.6 status.restart.force-r ...
- Ubuntu 16.04开机自启Nginx简单脚本
本文要记述的是最简单的Ubuntu下开机自启 nginx的脚本 这里将nginx装在了/usr/local/nginx目录下,nginx本身没有注册成服务,所以直接使用服务开机自启是不行的,除非自己写 ...
随机推荐
- Unicode 和 UTF-8 有何区别
作者:于洋链接:https://www.zhihu.com/question/23374078/answer/69732605来源:知乎著作权归作者所有,转载请联系作者获得授权. ========== ...
- 第十一次作业 - Alpha 事后诸葛亮(团队)
软工 · 第十一次作业 - Alpha 事后诸葛亮(团队) 组长本次作业链接 现代软件工程 项目Postmortem 设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场 ...
- 201621123037 《Java程序设计》第6周学习总结
作业06-接口.内部类 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多 ...
- PHP执行原理
简单解释:PHP执行原理 客户端向服务器发送一个请求,如果请求的是一个HTML页面,服务器直接将HTML页面发送到客户端给浏览器解析,如果请求的是PHP页面,则服务器会运行PHP页面然后生成标准的HT ...
- Mysql的表名/字段名/字段值是否区分大小写
1.MySQL默认情况下是否区分大小写,使用show Variables like '%table_names'查看lower_case_table_names的值,0代表区分,1代表不区分. 2.m ...
- vscode如何用浏览器预览运行html文件
1,打开vscode编辑器,点击编辑器主界面左上侧第五个小图标——‘扩展’按钮: 2,进入扩展搜索右拉框,在应用商店搜索框中输入“view in browser”会自动进行搜索 3,等待几秒钟时间,扩 ...
- ueditor与mvc4中坑 -编辑时显示源码问题
最近一次使用 ueditor 时,在MVC中的修改新闻内容时发现,怎么调用都是编辑器保存下来的源码,代码如下 <script id="ucontent" name=" ...
- 吉哥系列故事――完美队形II HDU - 4513(马拉车变一下形)
题意: 求最长回文串...但这个回文串要符合从中间到两头 逐个递减 解析: 在扩散的时候加一个判断就好了 #include <iostream> #include <cstdio&g ...
- 【转】实现虚拟机VMware上linux与windows互相复制与粘贴
1.点击虚拟机-->安装vm tool 2.完成后在系统桌面会出现一个tar文件,解压到tmp目录 下 3.终端cd到该文件夹下,执行./vmware-install.pl 一路回车到底.4.重 ...
- React Native工程中TSLint静态检查工具的探索之路
建立的代码规范没人遵守,项目中遍地风格迥异的代码,你会不会抓狂? 通过测试用例的程序还会出现Bug,而原因仅仅是自己犯下的低级错误,你会不会抓狂? 某种代码写法存在问题导致崩溃时,只能全工程检查代码, ...