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

五:看一下效果吧

我的朋友,就這樣咯....

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章