nginx日志切割,logrotate和nginx日志切割

本文介绍了如何使用logrotate工具在CentOS7上对Nginx日志进行自动切割、管理和权限设置。讲解了logrotate配置文件的语法,包括切割频率、文件保留数量、权限设定等。同时,演示了手动创建日志、配置logrotate文件、启动Nginx服务以及执行日志切割的过程。最后,通过添加'dateext'参数实现了带有时间戳的日志文件名。
摘要由CSDN通过智能技术生成

nginx日志切割,logrotate和nginx日志切割

logrotate进行nginx日志切割

logrotate 是一个基于cron的日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,可以根据日志文件的大小,也可以根据其天数来转储,这种行为称为日志转储或滚动。
默认centos7会自动安装logrotate

rpm -qa logrotate          确认有安装logrotate
ls /etc/logrotate.conf
yum install -y logrotate    没有安装输入这个命令直接安装

在这里插入图片描述
logrotate文件配置解释

在/etc/logrotate.d 编辑文件,下面是部分语法内容
daily :                       指定每天自动切割
weekly:                      指定每周自动切割
monthly:                     指定每月自动切割
rotate []:                 保留日志文件个数
notifempty:                  空文件不切割
nocompress:                  不压缩日志文件
delaycompress:               延迟压缩(当次切割不压缩,下次切割再压缩上一个文件)
create 0640 nginx root        指定新文件权限,属主属组
prerotate [命令] endscript    指定切割前进行命令操作
postrotate [命令] endscript   指定切割后进行命令操作
missingok                     如果日志不存在,不提示错误
nomissingok                   如果日志不存在,提示错误,默认值

安装nginx

初始化
cd /etc/yum.repos.d/
yum install -y wget
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
mv CentOS-Base.repo CentOS-Base.repo.bak
yum clean all
yum makecache
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing$/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

yum install -y nginx
systemctl start nginx
systemctl enable nginx
ls /var/log/nginx/access.log   确认日志生成
ls /run/nginx.pid              确认pid位置

配置logrotate

如果使用yum安装nginx会自动在这个目录生成这个文件
vi /etc/logrotate.d/nginx    编辑文件为下面内容
/var/log/nginx/*.log {
  daily
  rotate 10
  missingok
  notifempty
  nocompress
  delaycompress
  create 0640 nginx nginx
  postrotate
     if [ -f /run/nginx.pid ]; then
         kill -USR1 `cat /run/nginx.pid`
     fi
  endscript
}

注意:yum安装nginx时,日志文件都是root权限,修改为nginx权限
chown nginx.nginx -R /var/log/nginx/

手动制作一些nginx日志
cd /var/log/nginx/
tail /var/log/messages >>/var/log/nginx/access.log
tail /var/log/messages >>/var/log/nginx/error.log
logrotate -f /etc/logrotate.d/nginx         手动进行nginx切割
logrotate -vf /etc/logrotate.d/nginx        加-v可以查看详细执行过程
ll                                          查看生成的日志

在这里插入图片描述
主配置文件切割加时间

上面因为配置文件没有加"dateext"这个参数,所以没显示时间
vi /etc/logrotate.conf    确认主配置文件这个参数没被注释
dateext

删除上面生成的日志
rm -rf access.log.1 
rm -rf error.log.1
tail /var/log/messages >>/var/log/nginx/access.log
tail /var/log/messages >>/var/log/nginx/error.log

执行主配置文件(这个会把定义在/etc/logrotate.d/下的全部日志切割)
logrotate -f /etc/logrotate.conf  
ll    再次查看/var/log/nginx就可以看到日志有时间信息了

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值