Nginx学习笔记(八)——高性能服务器---日志切割(手动方式&脚本方式)

1.日志切割

  • 日志切割就是把系统的日志以天为单位进行存放,即每一天的日志都分开放
  • 企业当中每天都要备份昨天的日志,然后生成一个新的日志文件记录今天的日志
  • 如果不做日志切割,当日志文件很大的时候,vim打开的时候可能卡死等等
  • 而且日志切割后进行排错的时候也简单,是哪天的问题就查哪天的日志

2.为什么要进行日志切割?

在生产环境中每一天的日志文件都是要打包备份的
如果每天都手动的去截取日志、重命名这样就很不方便
所以我们编写一个脚本并建立一个定时任务来进行这些工作
日志切割是自动执行的,写在crotab定时任务里面,写一个脚本实现

3.手动方式实现日志切割

nginx服务器的日志类型:

日志名称 日志类型
access.log 存放成功访问nginx服务器的日志信息
error.log 存放访问nginx服务器失败的日志信息
nginx.pid 严格来说这个不算日志,里面存放的是nginx进程的pid

服务端:

cd /usr/local/nginx/
cd logs/
ls	#访问日志都在里面

在这里插入图片描述
在客户端(真机):

ab -c 1 -n 10000 http://www.westos.org/index.html	#一个用户访问服务端10000次

在这里插入图片描述
服务端:

du -sh access.log 	#查看文件大小
mv access.log `date +%F -d -1day`_access.log	#管理日志 昨天和今天分割
nginx -s reopen	#重新获得新的access.log文件

在这里插入图片描述

4.脚本方式实现日志切割

在服务端写入脚本:

cd /usr/local/nginx/logs
vim backup.sh

  1 #!/bin/bash
  2 LOGS_PATH=/usr/local/nginx/logs/oldlogs
  3 CUR_LOGS_PATH=/usr/local/nginx/logs
  4 YESTERDAY=$(date +%F -d -1day)
  5 
  6 mv $CUR_LOGS_PATH/access.log $LOGS_PATH/${YESTERDAY}_access.log
  7 mv $CUR_LOGS_PATH/error.log $LOGS_PATH/${YESTERDAY}_error.log
  8 
  9 /usr/local/nginx/sbin/nginx -s reopen

在这里插入图片描述
设置权限、建立目录:

chmod +x backup.sh
mkdir oldlogs
ll

在这里插入图片描述
执行脚本,查看日志是否自动切割备份:

  ./backup.sh 
cd oldlogs/
ll

在这里插入图片描述
编写定时任务: 使服务器每天的00:00准时去进行日志切割

crontab -e
写入:
0 0 * * * /bin/bash /usr/local/nginx/logs/backup.sh

crontab -l		#显示定时任务

在这里插入图片描述

发布了184 篇原创文章 · 获赞 7 · 访问量 3634

猜你喜欢

转载自blog.csdn.net/weixin_43936969/article/details/104564532