栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

nginx日志切割,logrotate和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就可以看到日志有时间信息了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/752149.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号