企业部分-------Nginx实现日志切割和定时备份

Nginx日志

在nginx目录下面有一个logs目录存储日志

日志目录下文件的介绍

  •     access.log:该日志文件是用来记录客户在访问该nginx时产生的每一个请求,格式可以自定义,通过访问日志就可以得到用户地域来源跳转来源,使用终端,某个URL访问等相关信息。
  •     error.log:错误日志,主要是记录客户端访问Nginx错误时产生的日志,格式不支持自定义,通过错误日志。可以得到系统的某个服务或者server的性能瓶颈。因此将错误日志好好利用,可以得到很多有价值的信息。
  •     nginx.pid:该日志文件主要是用来记录nginx的master进程的pid,当nginx服务启动时,会自动在该目录下生成该进程的pid文件。

在没有使用nginx的时候我们查看access.log的大小

然后我们可以多次访问浏览器,再查看access.log的内容和大小

$remote_addr(远程IP)     $remote_user(远程用户)    [$time_local](访问时间)   $request"(请求方式)    $status(状态302、404、401、403等) $body_bytes_sent(请求体 body 长度等)    $http_referer"(referer来源信息)    $http_user_agent(用户代理)"         $http_x_forwarded_for(被转发的请求的原始IP)

日志管理

我们为了方便管理nginx的日志,可以把日志按照日期分开保存起来

我们先做一个简单的,生成一个昨天的日期+access.log日志

我们怎么获取昨天的日期呢?

然后

mv access.log `date   +%F -d  -1day`_access.log

ls 查看一下

但这只有一个昨天日期_access.log,没有之前的access.log继续存储新的日志

我们需要把日志重新开启,这时候查看access.log发现它的大小就是0了

我们可以让电脑每天都固定一个时间(例如凌晨)进行这个操作,就可以实现日志的分类管理

写一个shell脚本

方式一:

#!/bin/bash
LOGS_PATH=/usr/local/nginx/logs/oldlogs
CUR_LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date +%F -d -1day)   

mv $CUR_LOGS_PATH/access.log $LOGS_PATH/${YESTERDAY}_access.log
mv $CUR_LOGS_PATH/error.log $LOGS_PATH/${YESTERDAY}_error.log

#kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
/usr/local/nginx/sbin/nginx -s reopen

方式二:

[root@server1 logs]# vim backup.sh

#!/bin/bash
LOGS_PATH=/usr/local/nginx/logs/oldlogs
CUR_LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date +%F -d -2day)

mv $CUR_LOGS_PATH/access.log $LOGS_PATH/${YESTERDAY}_access.log
mv $CUR_LOGS_PATH/error.log $LOGS_PATH/${YESTERDAY}_error.log

kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

 

先试着执行一下脚本看脚本有没有问题

然后crontab添加定时命令实现每天凌晨执行脚本进行nginx日志管理

crontab -e

crontab -l查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值