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本身没有注册成服务,所以直接使用服务开机自启是不行的,除非自己写 ...
随机推荐
- vs2015关于_CRT_SECURE_NO_WARNINGS警告说明
vs2015关于_CRT_SECURE_NO_WARNINGS警告说明 在VS中调用 strcpy.strcat 等函数时会提示 _CRT_SECURE_NO_WARNINGS 警告,原因是这些函数不 ...
- Java的一些细节问题
一.Java求余%的结果符号取决于除数的符号位:小数也可以求余,余数仍为小数. package com.test; public class Test { /** * @author 容杰龙 */ p ...
- Python @retry装饰器的使用与实现案例(requests请求失败并重复请求)
在爬虫代码的编写中,requests请求网页的时候常常请求失败或错误,一般的操作是各种判断状态和超时,需要多次重试请求,这种情况下,如果想优雅的实现功能,可以学习下retrying包下的retry装饰 ...
- ubuntu下安装 openssl&&编译运行测试代码
检查是否已安装 openssl: sudo apt-get install openssl 如果已安装执行以下操作:sudo apt-get install libssl-devsudo apt-ge ...
- Vue数据绑定和响应式原理
Vue数据绑定和响应式原理 当实例化一个Vue构造函数,会执行 Vue 的 init 方法,在 init 方法中主要执行三部分内容,一是初始化环境变量,而是处理 Vue 组件数据,三是解析挂载组件.以 ...
- elasticsearch6 学习之基础CURD
环境:elasticsearch6.1.2 kibana6.1.2 基础概念: 1._index元数据 (1)代表一个document存放在哪个index中(2)类似的数据放在一个索引 ...
- 第138天:Web前端面试题总结(编程)
1.如何让一个盒子水平垂直居中 //已知宽高 <div class="div1"></div> <style> .div1{ width:400 ...
- 学习Python最好的方法就是实践和教程并行,以下有一些资源和教程,还有一些学习思维导图:
1.Python 的 14 张思维导图下载地址: https://woaielf.github.io/2017/06/13/python3-all/ 2.Python基础教程|菜鸟教程: http:/ ...
- [区分] 1.计算机网络/internet(互联网) 2.Internet(因特网) 3.www/web(万维网)
internet(互联网或互连网)是一个通用名词,泛指由多个计算机网络互联而成的虚拟网络.Inernet(因特网)是一个专用名词,指当前全球最大的.开放的.由众多网络相互连接而成的特定的计算机网络,它 ...
- BZOJ5315 [JSOI2018]防御网络 【仙人掌 + dp】
题目链接 BZOJ5315 题解 题目好吓人= =点仙人掌 + 斯坦纳树 我们只需求出对于所有选点的方案的斯坦纳树边长总和 \(n\)那么大当然不能状压,但是考虑一下如果这是一棵树,一个方案的贡献就是 ...