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 #显示定时任务