Nginx实现日志切割和定时备份

一.Nginx日志目录简介

  • nginx的产生的相关的日志默认是在/usr/local/nginx/logs的目录里面。
    在这里插入图片描述
日志目录下文件的介绍
  • access.log:该日志文件是用来记录客户在访问该nginx时产生的每一个请求,格式可以自定义,通过访问日志就可以得到用户地域来源跳转来源,使用终端,某个URL访问等相关信息。
  • error.log:错误日志,主要是记录客户端访问Nginx错误时产生的日志,格式不支持自定义,通过错误日志。可以得到系统的某个服务或者server的性能瓶颈。因此将错误日志好好利用,可以得到很多有价值的信息。
  • nginx.pid:该日志文件主要是用来记录nginx的master进程的pid,当nginx服务启动时,会自动在该目录下生成该进程的pid文件。
    注意:日志的开关在Nginx的配置文件nginx.conf文件中设置,产生的日志都是可以选择性关闭的,但是默认是打开的。
    在这里插入图片描述
日志格式介绍
  • 默认格式的具体意思:
log_format main '
$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)"';

注意:(1)http_x_forwarded_for:在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP(2)日志的格式我们也可以自己定义。

我们来具体看一下日志记录的信息:
在这里插入图片描述

二.日志及其日志备份

日志的自动生成
  • 默认的在每次启动nginx服务的时候,都会在/usr/local/nginx/los目录下生成access.log日志,在每次对服务reopen重新打开时也会在nginx重新生成access.log日志文件。
    验证如下:
    在这里插入图片描述
实现在每日凌晨自动备份Nginx产生的日志
  • 编写脚本,实现在每日凌晨自动备份Nginx产生的日志:
  • 编写脚本实现nginx日志的自动备份,脚本内容如下:
[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 -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)

[root@server1 logs]# chmod +x 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)
/usr/local/nginx/sbin/nginx -s reopen

执行效果如下:
在这里插入图片描述

  • 添加定时命令文件实现每天凌晨的nginx服务的自动备份。
[root@server1 logs]# crontab -e 
no crontab for root - using an empty one
crontab: installing new crontab
[root@server1 logs]# crontab -l
0 0 1 * * /bin/bash /usr/local/nginx/logs/backup.sh
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值