以下這個指令碼實施的核心是:
每天凌晨將日誌檔案壓縮並移動到相應的年份月份目錄下,然後重新生成日誌檔案,同時記錄日誌
#!/bin/bash
logs_path="/home/wwwlog/" #日誌存放位置
year=`date +%y` #年份
month=`date +%m` #月份
day=`date +%y%m%d` #日期
time=`date +%y%m%d-%h:%m:%s` #時間
weblog="www.pcstars.com_access" #web訪問日誌
cutnginxlog="/home/sysadmin/zhaoyj/cutnginx.log" #分割nginx日誌的記錄
if [ $day -eq 1 ];then #判斷是不是月初1號,如果條件成立則建立目錄/home/wwwlog/年/月
mkdir -p $$year/$month/
ficd $logs_path #進入當前目錄
tar jcf access_$day.log.tar.bz2 access.log #壓縮日誌檔案
echo -n > access.log #清空檔案,重新開始記錄日誌
duaccess=`du -sh access_$day.log.tar.bz2 |awk ''` #統計tar的大小,以便記錄日誌
mv access_$day.log.tar.bz2 $$year/$month/ #將日誌檔案移動到相應的目錄下
echo "access_$day.log.tar.bz2 : $duaccess $time" >> $cutnginxlog #記錄日誌
tar jcf $_$day.tar.bz2 $weblog.log
echo -n > $weblog.log
dupcstars=`du -sh $_$day.tar.bz2 |awk ''`
mv $_$day.tar.bz2 $$year/$month/
echo "$_$day.tar.bz2 : $dupcstars $time" >> $cutnginxlog
dupcstars=`du -sh $_$day.tar.bz2 |awk ''`
mv $_$day.tar.bz2 $$year/$month/
echo "$_$day.tar.bz2 : $dupcstars $time" >> $cutnginxlog
echo "" >> $cutnginxlog
echo "" >> $cutnginxlog
Nginx 日誌分割
usr bin bash 日誌檔案存放目錄 logs path var log nginx nginx程序pid nginx pid cat var run nginx.pid 日誌名稱 logs name date d yesterday y m d 改名 mv logs path access....
NGINX日誌分割
nginx日誌分割 nginx 日誌分割 主要用到的命令是 usr local nginx sbin nginx s reopen nginx s reopen 意思是重新生成日誌檔案。所以我們可以每天定時把當天的日誌問價mv 成帶日期的,然後再生成新的檔案 usr local nginx 是我的n...
NGINX日誌分割
nginx 日誌分割 主要用到的命令是 usr local nginx sbin nginx s reopen usr local nginx 是我的nginx目錄 利用上面命令我們可以寫乙個指令碼每天定時執行,就可以做到切割日誌 我簡單用php寫的指令碼如下 僅供測試使用 test.php 我的p...