歡迎您光臨本站 註冊首頁

CentOS 7中Nginx日誌定時拆分實現過程詳解

←手機掃碼閱讀     bom485332 @ 2020-06-26 , reply:0

一、編寫拆分腳本(splitNginxLog.sh)

* 因為本例中設置每天0點進行日誌的拆分,所以folder和rq均設置採用昨天的日期進行歸檔。

  #!/bin/bash  folder=`date -d yesterday +%Y%m`  rq=`date -d yesterday +%Y%m%d`  # 原始日誌路徑  logs_path="/var/log/nginx/sitename.com/"  # 日誌備份路徑  logs_backup_path="/var/log/nginx/sitename.com/$folder"  # 要分割的日誌  logs_access="access"  logs_error="error"  # 創建備份路徑  [ -d $logs_backup_path ]||mkdir -p $logs_backup_path  # 將日誌移入備份文件夾  mv ${logs_path}${logs_access}.log ${logs_backup_path}/${logs_access}_${rq}.log  mv ${logs_path}${logs_error}.log ${logs_backup_path}/${logs_error}_${rq}.log  # 終止nginx的pid  pid_path="/var/run/nginx.pid"  kill -USR1 $(cat $pid_path)

 

二、測試日誌拆分腳本

在.sh文件的存放目錄下運行如下語句,測試拆分腳本是否成功。

# sh splitNginxLog.sh
 

如果提示$' ': 未找到命令的解決,則有可能是.sh文件編碼問題,是因為在Windows編輯器中編寫的腳本與在linux中的有一些區別。

處理方法:

1. 安裝dos2unix用於轉化編碼

# yum install dos2unix  

2. 轉換編碼

# dos2unix splitNginx.sh  

三、設置定時自動執行

# crontab -l //列出所有的定時任務
 # crontab -e //編輯定時任務
 

在其中編寫如下語句:

00 00 * * * bash /root/splitNginxLog.sh
 

                                                       

   


[bom485332 ] CentOS 7中Nginx日誌定時拆分實現過程詳解已經有233次圍觀

http://coctec.com/docs/linux/show-post-239785.html