Nginx access.log日志自动切割

第一:问题 Nginx的日志真的很大

[root@iZ23evimvf8Z logs]# ll -sh
total 1.5G
1.5G -rw-r--r-- 1 root root 1.5G Dec  7 18:32 access.log
 57M -rw-r--r-- 1 root root  56M Dec  7 18:25 error.log
4.0K -rwxrwxrwx 1 root root  468 Dec  7 18:27 nginxLogRotate.sh
4.0K -rw-r--r-- 1 root root    6 Dec  7 18:18 nginx.pid
[root@iZ23evimvf8Z logs]# 

第二:这个日志我们要让它每天都产生一个新的

一:创建一个脚本

[root@iZ23evimvf8Z logs]# cd /usr/local/nginx/logs

[root@iZ23evimvf8Z logs]# touch nginxLogRotate.sh 

[root@iZ23evimvf8Z logs]# vi nginxLogRotate.sh 

二:脚本内容

#!/bin/bash
#设置Nginx日志的文件位置
LOGS_PATH=/usr/local/nginx/logs
## 获取当天日期,用于日志文件名上
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
## 移动access.log日志,并修改命名
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
## 移动error.log日志,并修改命名
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

三:执行脚本文件读写执行权限

[root@iZ23evimvf8Z logs]# chmod 777 nginxLogRotate.sh

四:配置自动调度

[root@iZ23evimvf8Z logs]# crontab -e

内容如下:

#每天23点50分执行  /usr/local/nginx/logs/nginxLogRotate.sh脚本
50 23 * * * bash /usr/local/nginx/logs/nginxLogRotate.sh
查看一下配置的定时任务是否加入   查看root用户
[root@iZ23evimvf8Z logs]# crontab -l -u root
50 23 * * * bash /usr/local/nginx/logs/nginxLogRotate.sh

五:看一下效果吧

我的朋友,就这样咯....

发布了90 篇原创文章 · 获赞 79 · 访问量 63万+

猜你喜欢

转载自blog.csdn.net/yexiaomodemo/article/details/103438245