濮阳杆衣贸易有限公司

主頁 > 知識庫 > Nginx定時切割日志實現(xiàn)詳解

Nginx定時切割日志實現(xiàn)詳解

熱門標(biāo)簽:咸陽穩(wěn)定外呼系統(tǒng)公司 征服者快捷酒店地圖標(biāo)注 蕪湖呼叫中心外呼系統(tǒng)哪家強 電銷機器人怎么錄音 漯河電銷外呼系統(tǒng)價格 天津外呼系統(tǒng)運營商 ec外呼系統(tǒng)怎么樣 貴陽語音電銷機器人 貴港市機器人外呼系統(tǒng)團隊

前言

Nginx日志默認情況下寫入到一個文件中,為了區(qū)分各個域下的日志,我們一般會分開存儲。即時這樣,文件也會變的越來越大,非常不方便查看分析。通常我們是以每日來做統(tǒng)計的,下面來聊聊以日期來分隔Nginx日志。

配置

編寫腳本

#!/bin/bash
#初始化
LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date -d "yesterday" +%Y%m%d)

#按天切割日志
mv ${LOGS_PATH}/bbs.52itstyle.com.access.log ${LOGS_PATH}/bbs.52itstyle.com.access_${YESTERDAY}.log
mv ${LOGS_PATH}/blog.52itstyle.com.access.log  ${LOGS_PATH}/blog.52itstyle.com.access_${YESTERDAY}.log

#向nginx主進程發(fā)送USR1信號,重新打開日志文件,否則會繼續(xù)往mv后的文件寫數(shù)據(jù)的。原因在于:linux系統(tǒng)中,內(nèi)核是根據(jù)文件描述符來找文件的。如果不這樣操作導(dǎo)致日志切割失敗。
kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`

#刪除7天前的日志
cd ${LOGS_PATH}
find . -mtime +7 -name "*20[1-9][3-9]*" | xargs rm -f

exit 0

寫入任務(wù)

#執(zhí)行命令
crontab -e
#寫入文件并保存
0 0 * * * /home/scripts/cut_del_nginx_logs.sh

crontab

crond是linux下用來周期性的執(zhí)行某種任務(wù)或等待處理某些事件的一個守護進程,與windows下的計劃任務(wù)類似,當(dāng)安裝完成操作系統(tǒng)后,默認會安裝此服務(wù)工具,并且會自動啟動crond進程,crond進程每分鐘會定期檢查是否有要執(zhí)行的任務(wù),如果有要執(zhí)行的任務(wù),則自動執(zhí)行該任務(wù)。Linux下的任務(wù)調(diào)度分為兩類,系統(tǒng)任務(wù)調(diào)度和用戶任務(wù)調(diào)度。

系統(tǒng)任務(wù)調(diào)度:系統(tǒng)周期性所要執(zhí)行的工作,比如寫緩存數(shù)據(jù)到硬盤、日志清理等。在/etc目錄下有一個crontab文件,這個就是系統(tǒng)任務(wù)調(diào)度的配置文件。

crontab服務(wù)安裝

安裝crontab:

yum install crontabs

服務(wù)操作說明:

service crond start //啟動服務(wù)
service crond stop //關(guān)閉服務(wù)
service crond restart //重啟服務(wù)
service crond reload //重新載入配置

查看crontab服務(wù)狀態(tài):

service crond status

手動啟動crontab服務(wù):

service crond start

查看crontab服務(wù)是否已設(shè)置為開機啟動,執(zhí)行命令:

ntsysv

加入開機自動啟動:

chkconfig –level 35 crond on

crontab格式說明

用戶所建立的crontab文件中,每一行都代表一項任務(wù),每行的每個字段代表一項設(shè)置,它的格式共分為六個字段,前五段是時間設(shè)定段,第六段是要執(zhí)行的命令段,格式如下:

在以上各個字段中,還可以使用以下特殊字符:

  • 星號(*):代表所有可能的值,例如day字段如果是星號,則表示在滿足其它字段的制約條件后每天都執(zhí)行該命令操作。
  • 逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”
  • 中杠(-):可以用整數(shù)之間的中杠表示一個整數(shù)范圍,例如“2-6”表示“2,3,4,5,6”
  • 正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執(zhí)行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鐘執(zhí)行一次。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:淮北 攀枝花 東營 怒江 西寧 濰坊 西藏 香港

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Nginx定時切割日志實現(xiàn)詳解》,本文關(guān)鍵詞  Nginx,定時,切割,日志,實現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Nginx定時切割日志實現(xiàn)詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Nginx定時切割日志實現(xiàn)詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    阿拉善左旗| 四平市| 景洪市| 碌曲县| 咸宁市| 尚志市| 甘肃省| 广饶县| 沙雅县| 汤阴县| 化隆| 平舆县| 康马县| 安福县| 京山县| 平塘县| 仙游县| 湟中县| 澳门| 东乌珠穆沁旗| 高台县| 沙河市| 华宁县| 东丽区| 房产| 时尚| 灌阳县| 株洲市| 遂川县| 新源县| 连平县| 翁牛特旗| 交城县| 得荣县| 南宫市| 湘潭县| 青铜峡市| 鸡西市| 德惠市| 双辽市| 阳原县|