Nginx 日志分割

因业务需要做了简单的Nginx 日志分割,

第1章 详细配置如下。

#建议在mkdir  /home/shell  -p 专门写shell 脚本位置

root@localhost:/home/shell# cat nginxcut.sh

#!/bin/sh

#####

#by xuebao

#2017.05.16

date=`date +%Y%m%d`

nginxlog="/app/logs/nginx/"

/bin/mv ${nginxlog}www_access.log ${nginxlog}access_${date}back.log

/application/nginx/sbin/nginx -s reload

1.1 脚本详解

# data 时间  nginxlog nginx安装路径(可以根据自己环境修改

# ${} 变量的正规表达式

# ` `

#"/app/logs/nginx/" 双引号

括住部分将被视为单一字串 它防止通配符扩展但允许变量扩展

#` date +%Y%m%d ` 倒引号

括住部分为命令 命令执行

# ${} 变量的正规表达式

# 备份命令其中都是引用变量

/bin/mv ${nginxlog}www_access.log ${nginxlog}access_${date}back.log

#重启nginx

/application/nginx/sbin/nginx -s reload

1.2 写入定时任务

注意:写定时任务前一定要给 写的脚本给执行权限 +x

root@localhost:/home/shell# chmod +x /home/shell/nginxcut.sh

root@localhost:/home/shell# vim /etc/crontab

#####nginx cut log #####by xuebao 20170516######

58 23 * * * /bin/sh /home/shell/nginxcut.sh >/dev/null 2>&1

脚本详解

#其中 每天晚上23点58 备份

#全路径执行sh 建议可以先测试

1.3 >/dev/null 2>&1

在学习Linux的过程中,常会看到一些终端命令或者程序中有">/dev/null 2>&1 "出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者google一下相关的知识

0:表示键盘输入(stdin)

1:表示标准输出(stdout),系统默认是1 

2:表示错误输出(stderr)

command >/dev/null 2>&1 &  == command 1>/dev/null
2>&1 &

1)command:表示shell命令或者为一个可执行程序

2)>:表示重定向到哪里 

3)/dev/null:表示Linux的空设备文件 

4)2:表示标准错误输出

5)&1:&表示等同于的意思,2>&1,表示2的输出重定向等于于1

6)&:表示后台执行,即这条指令执行在后台运行

1>/dev/null:表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。

2>&1:表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

这条命令的意思就是在后台执行这个程序,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null文件,也就是清空.

所以可以看出"
>/dev/null 2>&1 "常用来避免shell命令或者程序等运行中有内容输出。

nginx 日志分割(简单、全面)的更多相关文章

  1. logrotate 进行nginx日志分割

    http://www.williamsang.com/archives/1254.html 日志分割常用方法: 自己写脚本分割 使用linux自带的logrotate 前者灵活,可以应对各种需求,自定 ...

  2. nginx日志分割配置实例

    Nginx没有类似Apache的cronolog日志分割处理的功能,但是,可以通过nginxNginx的信号控制功能利用脚本来实现日志的自动切割.请看下面的一个实例.Nginx对日志进行处理的脚本: ...

  3. nginx日志分割总结

    nginx日志自己不会进行分个,所有日志都会累积的记录在 access.log,error.log 中,当请求量大,一天就能到几百兆,如果不进行分给,对日志的查看和写入性能都有影响. 1. 编写脚本n ...

  4. 使用logrotate做nginx日志分割

    版权申明:转载请注明出处. 文章来源:http://bigdataer.net/?p=266 背景 nginx是一款非常优秀的网络代理工具,但是其日志管理有点缺憾:nginx的access_log会无 ...

  5. nginx日志分割小脚本

    nginx的日志一直是写在一个文件上面,运行久了之后文件会非常大,因此我们有必要对nginx的日志进行分割:   1 2 3 4 5 6 7 8 9 10 11 #! /bin/bash ACCESS ...

  6. nginx日志分割及备份

    环境:centos7 nginx1.16.1 一.分割及备份的目的 nginx默认将日志信息写在一个文件中,时间一久日志文件中条目越来越多,文件越来越大,不方便查看,备份的时候也不需要备份重复的信息, ...

  7. nginx日志分割脚本

    [root@localhost nginx]# cat logs/nginx.pid 5118[root@localhost nginx]# kill -QUIT 5118-QUIT : 关闭进程-H ...

  8. nginx 日志分割

    利用 crontab + shell 来实现nginx的 access log 按天切割,便于统计.具体实现如下: shell: #! /bin/sh NGINX_DIR=/data/apps/ngi ...

  9. windows服务器nginx日志分割

    编写一个bat文件 @echo off rem @echo off rem 取1天之前的日期 echo wscript.echo dateadd(,date) >%tmp%\tmp.vbs fo ...

随机推荐

  1. 用Caffe生成对抗样本

    同步自我的知乎专栏:https://zhuanlan.zhihu.com/p/26122612 上篇文章 瞎谈CNN:通过优化求解输入图像 - 知乎专栏 中提到过对抗样本,这篇算是针对对抗样本的一个小 ...

  2. WPF之路五:wpf 隐藏与显示 Visibility

    WPF里枚举变量Visibility 有三个值:Visible, Collapsed和Hidden.其中Collapsed是WPF新引进的,其作用是不仅隐去Control,同时也会移除Control所 ...

  3. C语言枚举类型(Enum)深入理解

    在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例, ...

  4. JavaScript运算符优先级

    图片引用自:http://www.cnblogs.com/xxcanghai/p/5189353.html

  5. 简单 fibonacci 函数

    public static int fibonacci(int n){  if(n<=1) return 1;  else {     return fibonacci(n-1)+fibonac ...

  6. DIV+CSS清除浮动方法

    一.为什么要清除浮动? 1>父元素在未定义高的情况下,由于子元素全部浮动脱离文本流,而造成父元素高的塌陷(正常情况下,父元素的高是由未浮动的子元素撑起来) 2>因为部分子元素的而浮动,脱离 ...

  7. php基础知识(二)---2017-04-14

    1.字符串的三种表达形式: (1)双引号 (2)单引号 (3)尖括号 $s = <<<A <div style="width:500px; height:100px; ...

  8. 前端开发必须说的那些事之——同源策略(same origin policy)

    同源策略指的是三个相同 协议相同 域名相同 端口相同 如https://www.baidu.com/hahah.html这个网址来说 https是使用的协议,www.baidu.com是域名,端口号默 ...

  9. java进制转换(无视正负数的差别)

    最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤其是对于负数这一方面. 下面和大家分享一下,这里只写了十进制到二进制的转换,其实都是同样的道理 public class Test1 { pub ...

  10. IT软件开发中常用的英语词汇

    Aabstract 抽象的abstract base class (ABC)抽象基类abstract class 抽象类abstraction 抽象.抽象物.抽象性access 存取.访问access ...