一.nginx的日志切割
日志切割,通俗一点就是将每天产生的日志单独备份起来到一个文件夹,在企业中,常常会产生大量的日志,而nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大,非常不方便查看分析(多容易卡住,而且看起来非常不方便)。所以为了解决这种问题,以日期来作为日志的切割是比较好的,通常我们是以每日来做统计的。在企业中,我们将每一天的日志文件都打包备份,每天备份昨天产生的日志,生成新的日志记录今天的。当发生问题的时候,就会比较容易排查。
实验如下所示:
需要了解的知识如下:
-
access_log :存放成功访问nginx服务器的日志信息
-
error_log:存放访问nginx服务器失败的日志信息
-
nginx.pid:里面存放的nginx进程的pid(严格意义上来说不算日志)
补充:date的用法
第一步:
[root@nodel1 logs]# du -sh *
4.0K access.log
4.0K error.log
4.0K nginx.pid
[root@nodel1 logs]# date +%F -d -1day
2019-07-29
[root@nodel1 logs]# mv access.log `date +%F -d -1day`_access.log #使用命令进行备份
[root@nodel1 logs]# ls
2019-07-29_access.log error.log nginx.pid
[root@nodel1 logs]# date +%F
2019-07-30
[root@nodel1 logs]# du -sh *
4.0K 2019-07-29_access.log
4.0K error.log
4.0K nginx.pid
这种太过麻烦,我们总不能每天都去手打命令,所以我们写一个脚本,将其放定时任务中,让其自己使实行日志切割。
第二步:编写脚本
[root@nodel1 logs]# vim backup.sh
里面写入内容如下:
1 #!/bin/bash
2
3 LOG_PATH=/usr/local/nginx/logs/oldlogs
4 CUR_LOG_PATH=/usr/local/nginx/logs/
5 YESTADAY=$( date +%F -d -1day)
6 mv $CUR_LOG_PATH/access.log $LOG_PATH/${YESTADAY}_access.log
7 mv $CUR_LOG_