Nginx常用日志分割方法
目标:
nginx cronolog日志分割配置文档,每分钟分割一次NGINX访问日志。
大体步骤如下:
1.nginx日志配置
access_log /var/log/nginx/access.log_pipe main;
2.先创建一个命名管道
mkfifo /var/log/nginx/access.log_pipe 3.配置cronolog按年月日时分保存分割后的文件
nohup cat /var/log/nginx/access.log_pipe | cronolog /var/log/nginx/domain.access_%Y%m%d%H%M.log 2>&1 & 4.启动Nginx
/usr/local/nginx/sbin/nginx
注意: cronolog必须在nginx启动前启动
最后详细讲解下cronolog的安装使用:
(1).直接用yum安装
|
1
|
[root@node6 src]# yum install -y cronolog httpd |
好了,到这里我们的cronolog就安装完成了,下面我们来说一下cronolog如何使用。
(3)cronolog 使用
.基本使用
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@node6 ~]# cronolog -husage: cronolog [OPTIONS] logfile-spec -H NAME, --hardlink=NAME maintain a hard link from NAME to current log -S NAME, --symlink=NAME maintain a symbolic link from NAME to current log -P NAME, --prev-symlink=NAME maintain a symbolic link from NAME to previous log -l NAME, --link=NAME same as -S/--symlink -h, --help print this help, then exit -p PERIOD, --period=PERIOD set the rotation period explicitly -d DELAY, --delay=DELAY set the rotation period delay -o, --once-only create single output log from template (not rotated) -x FILE, --debug=FILE write debug messages to FILE ( or to standard error if FILE is "-") -a, --american American date formats -e, --european European date formats (default) -s, --start-time=TIME starting time -z TZ, --time-zone=TZ use TZ for timezone -V, --version print version number, then exit |
cronolog 一般是采取管道的方式来工作的,采用如下的形式:
|
1
|
[root@node6 ~]# loggenerator | cronolog log_file_pattern |
其中,loggenerator为产生log的程序,而log_file_pattern是日志文件的路径,可以在其中加入cronolog所支持的时间相关的pattern字符,如/www/log/%y/%m/%d/access.log。其pattern为%字符后跟一特殊字符,简述如下:
转义符:
|
1
2
3
|
% %字符n 换行t 水平制表符 |
时间域:
|
1
2
3
4
5
6
7
|
H 小时(00..23)I 小时(01..12)p 该locale下的AM或PM标识M 分钟(00..59)S 秒 (00..61, which allows for leap seconds)X 该locale下时间表示符(e.g.: "15:12:47")Z 时区。若时区不能确定,则无意义 |
日期域:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
a 该locale下的工作日简名(e.g.: Sun..Sat)A 该locale下的工作日全名(e.g.: Sunday .. Satur-ay)b 该locale下的月份简称(e.g.: Jan .. Dec)B 该locale下的月份全称(e.g.: January .. December)c 该locale下的日期和时间(e.g.: "Sun Dec 15 14:12:47 GMT 1996")d 当月中的天数 (01 .. 31)j 当年中的天数 (001 .. 366)m 月数 (01 .. 12)U 当年中的星期数,以周日作为一周开始,其中第一周为首个含星期天的星期(00..53)W 当年中的星期数,以星期一作为一周的开始,其中第一周为首个含星期天的星期(00..53)w 工作日数(0 .. 6, 0表示星期天)x 该locale下的日期表示(e.g. "13/04/97")y 两位数的年份(00 .. 99)Y 四位数的年份(1970 .. 2038) |
下面是效果
|
1
2
3
4
5
6
7
|
[root@localhost ~]# cd /log/www/[root@localhost www]# lltotal 15072-rw-r--r-- 1 root root 16028 Dec 26 15:16 access_20131225.log-rw-r--r-- 1 root root 2406307 Dec 26 23:59 access_20131226.log-rw-r--r-- 1 root root 8292792 Dec 27 23:59 access_20131227.log-rw-r--r-- 1 root root 4682211 Dec 28 18:56 access_20131228.log |
Nginx常用日志分割方法的更多相关文章
- Nginx设置日志分割方法
目标:nginx cronolog日志分割配置文档,每分钟分割一次NGINX访问日志. 大体步骤如下: 1.nginx日志配置 access_log /var/log/nginx/access.log ...
- [转]C++常用字符串分割方法实例汇总
本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考.具体分析如下: 我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用. 一.用strtok函数进行字符串分割 原 ...
- C++常用字符串分割方法实例汇总
投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-10-08我要评论 这篇文章主要介绍了C++常用字符串分割方法实例汇总,包括了strtok函数.STL.Boost等常用 ...
- nginx,php日志分割
作者:zhanhailiang 日期:2014-01-06 默认nginx只会生成一个access.log和一个error.log,并且每天不断积累,日志文件会变的非常大,如果需要做一下日志的分析,无 ...
- nginx log日志分割
@echo offrem 备份并根据时间重命名错误日志文件set "cmdstr=move E:\nginx\logs\error.log E:\nginx\logs\error%date: ...
- C++常用字符串分割方法(转)
1.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串. 参数说明:str为要分解的字符串, ...
- C++常用字符串分割方法
一.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串. 参数说明:str为要分解的字符串, ...
- nginx常用运维日志分析命令
nginx常用日志分析命令 运维人员必备 常用日志分析命令 1.总请求数 wc -l access.log |awk '{print $1}' 2.独立IP数 awk '{print $1}' acc ...
- 【nginx运维基础(4)】Nginx的日志管理(日志格式与定时分割日志)
Nginx日志主要分为两种:访问日志和错误日志.日志开关在Nginx配置文件(一般在server段来配置)中设置,两种日志都可以选择性关闭,默认都是打开的. 访问日志access_log #日志格式设 ...
随机推荐
- ICTCLAS 汉语词性标注集
以前使用jieba分词时,并没有注意到词性标注集到底包含哪些,刚好最近学习自然语言处理,涉及到分词以及词性标注,将ICTCLAS 词性标注集记录如下: ICTCLAS 汉语词性标注集 代码 名称 帮助 ...
- 遍历 Input检测是否有重复的值
在项目中需要遍历某个Table中的Input输入是否有重复的值,为此基于Jquery写了两种实现方式(关键在于取值方式): 方法1: function CheckGoodsNo() { var ish ...
- 《java编程思想》读书笔记(二)第五章(2)
成员初始化 Java尽力保证:所有变量在使用前都能得到恰当的初始化. 对于方法的局部变量,Java会以编译时报错的形式贯彻这种保证,比如: void f() { int i; //这里编译时就会报错, ...
- Android Saving Data(二)
Saving File android读写文件的形式和普通的java IO的方式并没有什么不同,唯一有所限制的是当我们创建文件的时候不能够在像javaSE那样随意了.一般android读写文件有两种形 ...
- 3d数学总结帖
3d数学总结帖,以下是对3d学习过程中数学知识的简单总结 角度值和弧度制的互转 Deg2Rad 角度A1转弧度A2 => A2=A1*PI/180 Rad2Deg 弧度A2转换角度A1 => ...
- (转)Should 断言的基本使用方法
一.基础 RobotFramework带有丰富的系统关键,使用时无需导入,直接使用,为写自动化用例带来了极大的方便:不能停留在知道或者是会得程度,只有熟练使用各关键字,才能提升自动化用例的写作效率.下 ...
- Python第三方包的安装和管理
要想安装第三方的包,首先安装setuptools. 然后再安装pip,这个是用来管理第三方包的. 1. 包管理器pip,安装第三方包,以Selenium为例,运行 pip install seleni ...
- Linux-深入理解Socket异常
在各种网络异常情况的背后,TCP是怎么处理的?又是怎样把处理结果反馈给上层应用的?本文就来讨论这个问题.分为两个场景来讨论 建立连接时的异常情况 1 正常情况下 经过三次握手,客户端连接成功,服务端有 ...
- Zookeeper
Zookeeper有个客户端,可以上传文件数据.然后Zookeeper有一个数据结构.像一种树.Zookeeper的主要作用有:维护配置文件(实时更新),选举leader(选举机制),感知节点(数据结 ...
- unity, 按类型查找文件