若是使用LNMP網站環境的話,默認nginx只會生成一個訪問日誌,而且是在天天的積累,日誌文件會變的很是大,若是須要作一下日誌的分析,不管是使用腳本分析,仍是把日誌下載本地分析,都不太方便。天天分割Nginx的訪問日誌,有利於分析日誌。html
腳本內容:nginx
#!/bin/bash # a nginx access log segmentation shell script # www.1987.name cd /data/wslogs log_dir="/data/wslogs" time=`date +%Y%m%d` nginx_dir="/usr/local/webserver/nginx" #日誌分割,按天分類 website=`ls $log_dir/access* | xargs -n 1 | cut -f 2 -d "."` for i in $website do mkdir -p $log_dir/backup/$time/$i mv $log_dir/access.$i.log $log_dir/backup/$time/$i/$time.log done $nginx_dir/sbin/nginx -s reload #刪除全部超過7天日誌。 if [ "`date +%a`" = "Sun" ]; then all_list=`ls $log_dir/backup | xargs -n 1` for del in $all_list do let results=$time-$del if [ $results -gt 7 ]; then rm -fr $log_dir/backup/$del fi done fi
須要注意的是:由於我的須要,Nginx訪問日誌命名格式必須是access.域名.log
,例如:access.www_1987_com.log
,域名中原來的點.
必須換成其餘字符,好比下劃線_
web
代碼中的一些位置參數能夠根據本身須要修改,修改/etc/crontab
文件,加入00 00 * * * root /data/logcron.sh
,天天零點執行。shell
參考連接:bash
http://www.1987.name/682.html網站