日志备份
-
日志信息
-
access.log:该日志文件是用来记录客户在访问该nginx时产生的每一个请求,格式可以自定义,通过访问日志就可以得到用户地域来源跳转来源,使用终端,某个URL访问等相关信息
-
error.og:错误日志,主要是记录客户端访问Nginx错误时产生的日志,格式不支持自定义,通过错误日志。可以得到系统的某个服务或者server的性能瓶颈。因此将错误日志好好利用,可以得到很多有价值的信息
-
nginx.pid:该日志文件主要是用来记录nginx的master进程的pid,当nginx服务启动时,会自动在该目录下生成该进程的pid文件
-
日志的自动生成:
-
每次启动nginx或执行reopen命令时,都会在/usr/local/nginx/logs下重新生成access.log日志文件
[root@server1 logs]# mv access.log access.bak [root@server1 logs]# ls access.bak error.log nginx.pid [root@server1 logs]# /usr/local/nginx/sbin/nginx -s reopen [root@server1 logs]# ls access.bak access.log error.log nginx.pid
-
对日志进行备份:
[root@server1 html]# date##查看当前时间 Tue Jul 23 13:29:55 CST 2019 [root@server1 nginx]# ab -c 1 -n 100 http://172.25.42.1/index.html ##访问页面100次 [root@server1 nginx]# cd logs [root@server1 logs]# ls access.log backup.sh error.log nginx.pid oldlogs [root@server1 logs]# wc -l access.log ##查看日志由100行 100 access.log [root@server1 logs]# mv access.log `date +%F -d -1day`_access.log##保留前一天日志 [root@server1 logs]# wc -l 2019-07-22_access.log 100 2019-07-22_access.log
-
使用脚本实现自动备份:
脚本:
#!/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
/usr/local/nginx/sbin/nginx -s reopen
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
实际操作:
[root@server1 html]# date##查看当前时间
Tue Jul 23 13:29:55 CST 2019
[root@server1 logs]# cat 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
/usr/local/nginx/sbin/nginx -s reopen
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
[root@server1 logs]# make oldlogs##生成脚本中目录
[root@server1 logs]# sh backup.sh##执行脚本
[root@server1 logs]# cat oldlogs/2019-07-22_access.log ##查看脚本中的结果
2019/07/23 11:52:07 [notice] 9698#0: signal process started
2019/07/23 13:04:21 [notice] 9813#0: signal process started
- 添加定时命令实现每天凌晨对日志进行备份
[root@server1 oldlogs]# crontab -e
[root@server1 oldlogs]# crontab -l
0 0 * * * /bin/bash /usr/local/nginx/logs/backup.sh