圖文詳解nginx日志切割的實(shí)現(xiàn)
實(shí)現(xiàn)nginx的日志切割
(注:為什么要切割呢?因?yàn)楫?dāng)你用戶訪問量大的時(shí)候,可能日志也很大。)
《1》:ll /usr/local/nginx/logs/ 查看日志 (注:有兩個(gè)日志,一個(gè)是訪問日志,另一個(gè)是錯(cuò)誤日志。)
《2》:tail -f /usr/local/nginx/logs/access.log 查看訪問日志
《3》:vim /opt/cut_nginx_log.sh 編寫一個(gè)腳本
《4》:腳本內(nèi)容:
#!/bin/bash #cut_nginx_log.sh datetime=$(date -d "-1 day" "+%Y%m%d") log_path="/usr/local/nginx/logs" pid_path="/usr/local/nginx/logs/nginx.pid" [ -d $log_path/backup ] || mkdir -p $log_path/backup if [ -f $pid_path ] then mv $log_path/access.log $log_path/backup/access.log-$datetime kill -USR1 $(cat $pid_path) find $log_path/backup -mtime +30 | xargs rm -f else echo "Error,Nginx is not working!" | tee -a /var/log/messages fi
注釋:
#!/bin/bash #cut_nginx_log.sh datetime=$(date -d "-1 day" "+%Y%m%d")??????? //時(shí)間,date -d "-1 day"代表日期減1 log_path="/usr/local/nginx/logs"???????????? //日志的存放位置 pid_path="/usr/local/nginx/logs/nginx.pid"?? //進(jìn)程的PID號(hào),有PID號(hào)代表 進(jìn)程還活著 [ -d $log_path/backup ] || mkdir -p $log_path/backup?? //如果$log_path/backup不是一個(gè)目錄則創(chuàng) 建$log_path/backup目錄 if [ -f $pid_path ]??????????????????????????????? //如果$pid_path是一個(gè)文件 then mv $log_path/access.log $log_path/backup/access.log-$datetime? //那么移動(dòng)舊日志的文件到新目錄 下以此來實(shí)現(xiàn)分割 kill -USR1 $(cat $pid_path)??????????????????????????????????? //USR1代表信號(hào),他會(huì)給進(jìn)程傳一 個(gè)信號(hào)讓進(jìn)程生成一個(gè)新的日志 find $log_path/backup -mtime +30 | xargs rm -f??????????????? //查找30天前的日志并刪除 else echo "Error,Nginx is not working!" | tee -a /var/log/messages? //否則提示nginx is not working且追加到日志中 fi
(注:kill 信號(hào),信號(hào)有64種。)
《5》:chmod +x /opt/cut_nginx_log.sh 給腳本添加執(zhí)行權(quán)限
《6》:crontab -e 寫計(jì)劃任務(wù)
《7》:寫入
*/5???? *?????? *?????? *?????? *?????? /usr/sbin/ntpdate pool.ntp.org > /dev/null 2 >&1 0?????? 0?????? *?????? *?????? *?????? /opt/cut_nginx_log.sh
《7》:/opt/cut_nginx_log.sh 執(zhí)行腳本
《8》:ls /usr/local/nginx/logs 查看日志目錄下(注:下面中access.log是新的訪問日志,backup里面是老的訪問日志。)
《9》:ls /usr/local/nginx/logs/backup/ 查看
《10》:tailf /usr/local/nginx/logs/access.log 查看訪問日志(注:tailf 是等同tail -f的)
《11》:在瀏覽器中訪問
《11》:tailf /usr/local/nginx/logs/access.log 在去訪問,他下面會(huì)出現(xiàn)
面試題討論:
說明Nginx的訪問日志記錄在 access.log文件中。
1、如果將access.log重命名為a.log時(shí),新產(chǎn)生的日志寫到哪兒?為什么?
答案:日志將會(huì)寫入到a.log 文件中,因?yàn)橹孛笪募?Inode,沒有變化,文件系統(tǒng)是根據(jù)Inode查找文件的。
2、如果此時(shí)將 Nginx服務(wù)重啟后,新產(chǎn)生的田志寫到哪兒?為什么?
答案:日志將會(huì)寫入到新的access.log文件中,因?yàn)橹貑r(shí)會(huì)加載Nginx的配置文件,配置文件中是通過文件名指定日志的,所以會(huì)創(chuàng)建新的日志。
總結(jié)
到此這篇關(guān)于圖文詳解nginx日志切割實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)nginx日志切割內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx 路由轉(zhuǎn)發(fā)和反向代理location配置實(shí)現(xiàn)
本文主要介紹了Nginx 路由轉(zhuǎn)發(fā)和反向代理location配置實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11關(guān)于nginx 實(shí)現(xiàn)jira反向代理的問題
這篇文章主要介紹了關(guān)于nginx 實(shí)現(xiàn)jira反向代理的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09詳解Nginx如何根據(jù)swagger關(guān)鍵字屏蔽頁(yè)面
這篇文章主要為大家詳細(xì)介紹了Nginx 如何根據(jù)swagger關(guān)鍵字屏蔽頁(yè)面的實(shí)現(xiàn)方案,文中有詳細(xì)的解決方案,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-08-08nginx實(shí)現(xiàn)動(dòng)靜分離實(shí)例講解
在本篇文章里小編給大家整理的是關(guān)于nginx實(shí)現(xiàn)動(dòng)靜分離實(shí)例講解,需要的朋友們可以參考下。2020-03-03配置Nginx服務(wù)器展示隨機(jī)首頁(yè)與空白圖片的方法
這篇文章主要介紹了配置Nginx服務(wù)器展示隨機(jī)首頁(yè)與空白圖片的方法,分別用到了ngx_http_random_index_module模塊和ngx_http_empty_gif_module模塊,需要的朋友可以參考下2016-01-01Nginx 解決WebApi跨域二次請(qǐng)求以及Vue單頁(yè)面的問題
下面小編就為大家分享一篇Nginx 解決WebApi跨域二次請(qǐng)求以及Vue單頁(yè)面的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01