歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux維護 >> 如何定時清理Linux系統中的Nginx日志

如何定時清理Linux系統中的Nginx日志

日期:2017/3/2 10:32:24   编辑:Linux維護

Nginx日志文件如何不定情清理,會變得越來越大,影響Nginx服務器的運行,下面小編就給大家介紹下Linux中清理Nginx日志的方法,一起來了解下吧。

nginx日志文件需要手動分割,創建腳本文件clear_log.sh

文件路徑/usr/local/nginx/clear_log.sh

vi clear_log.sh。輸入如下內容

#!/bin/bash

cp /usr/local/nginx/logs/error.log /usr/local/nginx/error-$(date -d “yesterday” +“%Y%m%d”).log

#先復制原來的錯誤日志文件,請根據自己實際的日志路徑填寫

cat /dev/null 》 /usr/local/nginx/logs/error.log

#清空錯誤日志文件

cp/usr/local/nginx/logs/access.log /var/log/nginx/access/access-$(date -d “yesterday” +“%Y%m%d”).log

#先復制原來的正常訪問日志

cat /dev/null 》 /usr/local/nginx/logs/access.log

#清空原來的正常訪問日志

創建dellog.sh文件,路徑/usr/local/nginx

vi dellog.sh

#!/bin/sh

find /usr/nginx/logs/error -mtime +7 -type f -name /*.log | xargs rm -f

find /usr/nginx/logs/access -mtime +7 -type f -name /*.log | xargs rm -f

#定期刪除七天前的日志文件

啟動linux下的計劃任務,將剛才創建好的兩個shell腳本加入此計劃

crontab -e,輸入如下內容

0 0 * * * /usr/nginx/clear_log.sh

#每天0點執行/usr/nginx/clear_log.sh

0 0 * * * /usr/nginx/dellog.sh

#每天0點執行 /usr/nginx/dellog.sh

保存後退出,輸入命令crontab root就會看到/var/spool/cron/文件夾下看到相應的副本文件root。至此完成nginx日志按天拆分與定期清除。

邏輯詳解:比如現在是3月18日0點0分,系統會自動執行clear_log.sh與dellog.sh兩個shell腳本。clear_log.sh會把3月17日的日志文件分別生成為access_20140317.log與error_20140318.log,然後把原來的access.log與error.log分別清空。dellog.sh則會自動判斷該文件的創建時間,如果是十五天前的就會自動清除

上面就是Linux清理Nginx日志的方法介紹了,因為Nginx日志沒有自動清理的功能,一般采用切割日志的方法進行處理。

Copyright © Linux教程網 All Rights Reserved