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本身没有注册成服务,所以直接使用服务开机自启是不行的,除非自己写 ...
随机推荐
- EF动态排序
转载的代码,改天再研究 public PageData<T> FindAll(int PageIndex, int PageSize, Expression<Func<T, b ...
- CCF——图像旋转201503-1
问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可. 输入格式 输入的第一行包含 ...
- 【第三周】【】cppunit!
coding.net地址:https://coding.net/u/Boxer_ ssh:git@git.coding.net:Boxer_/homework.git https://coding.n ...
- spring mvc $.ajax没有指定contentType ,导致后台无法接收到数据
var formData = JSON.stringify(this.rows); //将表单中的数据转为字符串 $.ajax({ type: "post", url: 'http ...
- Additinal Dependencies和#pragma comment(lib,"*.lib")的分析
网上.一些书上也写道,这两种方式作用一样.其实仔细分析,它们两者还是有非常大的差异的. Additinal Dependencies和#pragma comment(lib,"*.lib& ...
- gridview 第一行编辑
<%@ Page Language="C#" AutoEventWireup="true" Codebehind="Default.aspx.c ...
- 数组去重复及记录重复个数(以及遍历map的四种方法)
private static void check(String[] array) { // 字符串数组中,含有不重复的字符串有哪些?每一个重复的个数 Map<String,Integer> ...
- 外部JS的阻塞下载
转载于:http://www.cnblogs.com/mofish/archive/2011/09/29/2195256.html 所有浏览器在下载JS的时候,会阻止一切其他活动,比如其他资源的下载, ...
- ADO之connection
connection 主要成员 connectionstring 属性 连接字符串 open() 打开数据库连接 close() ...
- PHP创建对象的几种形式
创建对象的几种形式 class C1{ var $p1 = 1; //定义一个属性: } 形式1: $o1 = new C1(); //通过一个类,去new出一个对象 形式2: $o2 = new ...