1、什么是日志切割
日志切割就是把系统的日志以天为单位进行存放。
2、为什么要进行日志切割
- 在企业中每天的日志文件都是要打包备份的,如果不做日志切割,任由日志文件累积,当日志文件很大的时候,vim打开时可能会卡死。
- 日志切割有利于排错,是哪天的问题就查哪天对应的日志,方便快捷。
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.yang.org/index.html #访问服务端10000次
服务端:
du -sh access.log ##查看访问文件大小
mv access.log `date +%F -d -1day`_access.log ##管理日志,进行手动切割,日志名为“日期_access.log”
nginx -s reopen ##重新获得新的access.log文件
4、日志切割的脚本实现
如果每天都手动的去截取日志、重命名就很不方便,所以我们编写一个脚本并建立一个定时任务来进行这些重复工作:
在服务端写入脚本:
cd /usr/local/nginx/logs
vim 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
设置权限、建立目录:
chmod +x backup.sh
mkdir oldlogs
执行脚本,查看日志是否自动切割备份:
./backup.sh
cd oldlogs/
ll ##查看是否生成了切割后的日志文件
编写定时任务: 使服务器每天的00:00准时去进行日志切割:
crontab -e
##写入:
0 0 * * * /bin/bash /usr/local/nginx/logs/backup.sh
crontab -l ##显示定时任务,查看定时任务是否写入