首页 > 技术文章 > nginx日志定时备份

mihoutao 2020-10-26 16:03 原文

1、nginx服务必须起着,服务启动了才会有nginx.pid

2、nginx日志目录下的简介

  •  nginx的产生的相关的日志默认是在/usr/local/nginx/logs的目录里面

注意:日志的开关在Nginx的配置文件nginx.conf文件中设置,产生的日志都是可以选择性关闭的,但是默认是打开的。

  • access.log:该日志文件是用来记录客户在访问该nginx时产生的每一个请求,格式可以自定义,通过访问日志就可以得到用户地域来源跳转来源,使用终端,某个URL访问等相关信息。

  • error.og:错误日志,主要是记录客户端访问Nginx错误时产生的日志,格式不支持自定义,通过错误日志。可以得到系统的某个服务或者server的性能瓶颈。因此将错误日志好好利用,可以得到很多有价值的信息。

  • nginx.pid:该日志文件主要是用来记录nginx的master进程的pid,当nginx服务启动时,会自动在该目录下生成该进程的pid文件。

 

3、日志及其日志备份

1.日志的自动生成

  • 默认的在每次启动nginx服务的时候,都会在/usr/local/nginx/los目录下生成access.log日志,但是在每次对服务reopen重新打开时也会在nginx重新生成access.log日志文件。

验证如下:

 

 此时我已经编辑了backup.sh、生成了oldlogs,这两步在下面的操作

 

 

2.实现在每日的凌晨自动备份nginx产生的日志

编写脚本实现nginx日志的自动备份:

vim backup.sh编辑内容如下:

#!/bin/bash

LOG_PATH=/usr/local/nginx/logs/oldlogs

CUR_LOG_PATH=/usr/local/nginx/logs

YESTERDAY=$(date +%F -d -1day)

mv $CUR_LOG_PATH/access.log $LOG_PATH/${YESTERDAY}_access.log

mv $CUR_LOG_PATH/error.log $LOG_PATH/${YESTERDAY}_error.log

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

 

 

 

 

 

 

 添加定时命令文件实现每天凌晨的nginx服务的自动备份

 

 如果在执行crontab -e后编辑内容如下:

 

编辑完成之后保存退出报错    no crontab for root - using an empty one

解决办法可以是crontab -e编辑后强制保存退出就可以了

 

4、每天检查/usr/local/nginx/logs/oldlogs是否自动备份每日日志

 

推荐阅读