1.什么是日志切割?
日志切割就是把系统的日志以天为单位进行存放,即每一天的日志都分开放
企业当中每天都要备份昨天的日志,然后生成一个新的日志记录今天的
如果不做日志切割,当日志文件很大的时候,vim打开的时候可能卡死等等
而且排错的时候也简单,是哪天的问题查哪天的日志
2.为什么要进行日志切割?
在生产环境中每一天的日志文件都是要打包备份的
如果每天都手动的去截取日志,重命名这样就很不方便,所以我们编写一个脚本并建立一个定时任务来进行这些工作
日志切割是自动执行的,写在crotab定时任务里面,写一个脚本实现
3.实现对nginx服务器的日志切割(手动方式)
nginx服务器的日志类型
| 日志名称 | 日志类型 |
|---|---|
| access.log | 存放成功访问nginx服务器的日志信息 |
| error.log | 存放访问nginx服务器失败的日志信息 |
| nginx.pid | 严格来说这个不算日志,里面存放的是nginx进程的pid |
服务端:查看当前时刻nginx服务器日志的大小
du -sh access.log

物理机:ab -c 1 -n 1000 http://172.25.71.1/index.html


服务端:查看当前时刻nginx服务器日志的大小
du -sh access.log

服务端:手动进行日志切割
date +%F -d -1day 日期显示格式为2019-09-26
mv access.log `date +%F -d -1day`_access.log #备份
/usr/local/nginx/sbin/nginx -s reopen #重新生成一个新的access.log日志
du -sh 2019-09-26_access.log #说明日志备份成功
du -sh access.log

物理机:ab -c 1 -n 1000 http://172.25.71.1/index.html

du -sh access.log
cat access.log | wc -l
cat 2019-09-26_access.log | wc -l

3.实现对nginx服务器的日志切割(脚本方式)
在nginx服务的日志目录下面编写脚本
cd /usr/local/nginx/logs
vim back.up
写入:
#!/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
ll

执行脚本,查看日志是否自动切割备份
./backup.sh
cd oldlogs/
ll

编写定时任务,使服务器每天的00:00,准时去进行日志切割
crontab -e
写入:
0 0 * * * /bin/bash /usr/local/nginx/logs/backup.sh
crontab -l #显示定时任务


本文介绍了日志切割的概念及其在生产环境中的重要性,详细讲解了如何手动和通过脚本方式对nginx服务器进行日志切割。手动方式包括查看日志大小及实际切割操作;脚本方式涉及编写脚本、设置权限、建立目录,并通过cron定时任务实现日志的自动切割备份。
3764

被折叠的 条评论
为什么被折叠?



