一、撰寫拆分腳本(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
如果提示$’\r’: 未找到命令的解決,則有可能是.sh檔案編碼問題,是因為在Windows編輯器中撰寫的腳本與在linux中的有一些區別,
處理方法:
1. 安裝dos2unix用于轉化編碼
# yum install dos2unix
2. 轉換編碼
# dos2unix splitNginx.sh
三、設定定時自動執行
# crontab -l //列出所有的定時任務 # crontab -e //編輯定時任務
在其中撰寫如下陳述句:
00 00 * * * bash /root/splitNginxLog.sh
參考資料:
日志拆分部分
https://blog.csdn.net/molaifeng/article/details/82667158
https://www.jianshu.com/p/1ccdd3e390ac
https://cloud.tencent.com/developer/article/1508110
https://www.cnblogs.com/free-long/p/8005082.html
編碼轉換部分
https://www.cnblogs.com/duanjt/p/9677589.html
SH檔案執行部分
https://blog.csdn.net/hpf247/article/details/79190600
定時執行部分
https://www.cnblogs.com/cqlb/p/9772207.html
關于日期函式的使用
https://blog.csdn.net/y65184536/article/details/82187977
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/89804.html
標籤:Linux
