天天看點

log備份壓縮以及擷取指定内容到新檔案

log備份壓縮以及擷取指定内容到新檔案

log備份壓縮以及擷取指定内容到新檔案  

[1].[代碼] [shell/批處理]代碼 跳至 [1] [2]  

#!/bin/sh    

#============ get the file name ===========    

folder_a="/mnt/log/"  #這是我log存放的地方  

#output_file="mysql.txt"    

t=$(date +%y%m%d%h%m%s)      #時間戳,命名用  

d=$(date +%y%m%d)                                                                                                                                    

for file_a in ${folder_a}/*; do  #擷取該檔案夾下的所有日志檔案  

    temp_file=`basename $file_a`    

    #echo $temp_file >> $output_file    

    while read line    #讀行  

    do  

    grep "sessionid">>/mnt/datas/mysql_$d.txt;   #擷取含sessionid的行輸出到txt檔案  

        done < ${folder_a}/$temp_file  

done  

ls ${folder_a}/    #壓縮  

    if [ $? -eq 0 ];then  

        tar -zcvf log_$t.tar.gz ${folder_a}/  #壓縮  

    else  

        echo   "yourdir is empty!" >>log.log  #該shell運作的log  

    fi  

for file_b in ${folder_a}/*; do  #清空日志檔案,不是删除  

    temp_file=`basename $file_a`  

    cat /dev/null >${folder_a}/$temp_file  

[2].[代碼] 定時器 跳至 [1] [2]  

crontab -e  #編輯定時器  

insert  

#每天淩晨兩點執行,路徑得看你們自己的路徑  

0 2 * * * cd /mnt/shell/ && /mnt/shell/log.sh >> /mnt/shell/log.log 2>&1   

#最後記得啟動定時器  

繼續閱讀