切割nginx日志
2016-05-16 14:10
447 查看
一、使用logrotate切割yum安装的nginx会自动使用logrotate这个日志管理软件进行切割,所以本章节我们主要介绍有关logrotate相关的知识点。[root@lanmp bin]# yum install -y nginx
1.1 logrotate介绍logrotate是什么呢?它是一个linux系统日志的管理工具。它可以切割、压缩等其他软件的日志文件软件。我们可以通过如下命令安装logrotate,如下:[root@lanmp bin]# yum -y install logrotate
查看logrotate的配置文件,使用如下命令:[root@lanmp bin]# rpm -ql logrotate
[root@lanmp bin]# cat /etc/logrotate.conf |grep -v '^#'
通过上图,我们可以很明显的看到logrotate的配置文件是/etc/logrotate.conf,而/etc/logrotate.d/是用于存储其他配置文件的目录。该目录里的所有文件都会被主动的读入 /etc/logrotate.conf中执行。
1.2 logrotate配置文件详解logrotate默认配置选项相对来说比较少,在此我们以切割nginx的配置文件为例,如下配置:[root@lanmp bin]# vim /etc/logrotate.d/nginx
/var/log/nginx/*log {
daily
rotate 7
missingok
dateext
# compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && /bin/kill -USR1 'cat /var/run/nginx.pid'
endscript
}
在该配置文件中,每个参数作用如下:/var/log/nginx/为nginx日志的存储目录,可以根据实际情况进行修改。daily:日志文件将按天轮循。weekly:日志文件将按周轮循。monthly:日志文件将按月轮循。missingok:在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。rotate 7:一次存储7个日志文件。对于第8个日志文件,时间最久的那个日志文件将被删除。dateext:定义日志文件后缀是日期格式,也就是切割后文件是:xxx.log-20160402.gz这样的格式。如果该参数被注释掉,切割出来是按数字递增,即前面说的 xxx.log-1这种格式。compress:在轮循任务完成后,已轮循的归档将使用gzip进行压缩。delaycompress:总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。notifempty:如果是空文件的话,不进行转储。create 640 nginx adm:以指定的权限和用书属性,创建全新的日志文件,同时logrotate也会重命名原始日志文件。postrotate/endscript:在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd进程将立即再次读取其配置并继续运行。注意:这两个关键字必须单独成行。
logrotate切割时间默认是在每天的3:22。这个时间点可以通过crontab配置文件查看到。如下:
[root@lanmp ~]# cat /etc/anacrontab
如果你想在指定时间点,让logrotate切割日志的话,可以修改此配置文件的START_HOURS_RANGE参数。
1.1 logrotate介绍logrotate是什么呢?它是一个linux系统日志的管理工具。它可以切割、压缩等其他软件的日志文件软件。我们可以通过如下命令安装logrotate,如下:[root@lanmp bin]# yum -y install logrotate
查看logrotate的配置文件,使用如下命令:[root@lanmp bin]# rpm -ql logrotate
[root@lanmp bin]# cat /etc/logrotate.conf |grep -v '^#'
通过上图,我们可以很明显的看到logrotate的配置文件是/etc/logrotate.conf,而/etc/logrotate.d/是用于存储其他配置文件的目录。该目录里的所有文件都会被主动的读入 /etc/logrotate.conf中执行。
1.2 logrotate配置文件详解logrotate默认配置选项相对来说比较少,在此我们以切割nginx的配置文件为例,如下配置:[root@lanmp bin]# vim /etc/logrotate.d/nginx
/var/log/nginx/*log {
daily
rotate 7
missingok
dateext
# compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && /bin/kill -USR1 'cat /var/run/nginx.pid'
endscript
}
在该配置文件中,每个参数作用如下:/var/log/nginx/为nginx日志的存储目录,可以根据实际情况进行修改。daily:日志文件将按天轮循。weekly:日志文件将按周轮循。monthly:日志文件将按月轮循。missingok:在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。rotate 7:一次存储7个日志文件。对于第8个日志文件,时间最久的那个日志文件将被删除。dateext:定义日志文件后缀是日期格式,也就是切割后文件是:xxx.log-20160402.gz这样的格式。如果该参数被注释掉,切割出来是按数字递增,即前面说的 xxx.log-1这种格式。compress:在轮循任务完成后,已轮循的归档将使用gzip进行压缩。delaycompress:总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。notifempty:如果是空文件的话,不进行转储。create 640 nginx adm:以指定的权限和用书属性,创建全新的日志文件,同时logrotate也会重命名原始日志文件。postrotate/endscript:在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd进程将立即再次读取其配置并继续运行。注意:这两个关键字必须单独成行。
1.3 查看logrotate默认执行时间
logrotate是基于crontab运行的,所以这个时间点是由crontab控制的,具体可以查询crontab的配置文件/etc/anacrontab。logrotate切割时间默认是在每天的3:22。这个时间点可以通过crontab配置文件查看到。如下:
[root@lanmp ~]# cat /etc/anacrontab
如果你想在指定时间点,让logrotate切割日志的话,可以修改此配置文件的START_HOURS_RANGE参数。
相关文章推荐
- Windows下配置nginx+php(wnmp)
- Linux环境下安装Nginx+Pcre+zlib+OpenSSL
- nginx配置文件备份
- keepalived基于双主模型实现nginx的高可用(2)
- 给Nginx配置一个自签名的SSL证书
- 用Nginx实现Session共享的均衡负载
- LVS & Nginx 的区别与优缺
- Nginx安装与配置文件解析
- Nginx详细配置说明
- linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14
- Nginx下配置ThinkPHP的URL Rewrite模式和pathinfo模式支持
- Nginx安装与优化
- Linux(CentOS6.5)下Nginx注册系统服务(启动、停止、重启、重载等)&设置开机自启
- Linux(CentOS6.5)下编译安装Nginx官方最新稳定版(nginx-1.10.0)
- linux企业常用服务---haproxy+nginx搭建web高可用集群
- CentOS6.5+Nginx1.9+Mysql5.7+PHP7.0.6(LNMP)环境配置
- windows下nginx安装、配置与使用
- Nginx配置负载均衡
- nginx 二级域名
- linux企业常用服务---部署NGINX虚拟主机