shell腳本遍歷子目錄


 
         

#!/bin/bash
source /etc/profile

 
         

tool_path=/data/rsync_client
root_path=/data/log

 
         

###
#yyyy-mm-dd¸ñʽ
date_today=`date +"%Y-%m-%d"`
date_yesterday=`date -d "yesterday" +%Y-%m-%d`

 
         

#yyyymmdd¸ñʽ
date_today_hadoop=`date +"%Y%m%d"`
date_yesterday_hadoop=`date -d "yesterday" +%Y%m%d`

 
         

#yyyymd¸ñʽ
file_today=${date_today//-0/-}
file_yesterday=${date_yesterday//-0/-}

 
         


### kill rsync
${tool_path}/killrsync.sh

 
         

###
destFile_yesterday="${tool_path}/tlog/${date_yesterday_hadoop}"
if [[ ! -d ${destFile_yesterday} ]]; then
mkdir -p ${destFile_yesterday}
fi

 
         

destFile_today="${tool_path}/tlog/${date_today_hadoop}"
if [[ ! -d ${destFile_today} ]]; then
mkdir -p ${destFile_today}
fi

 
         

## ÿÌìÉú³ÉÒ»¸öÎļþ£¬Ã»¹ýÂ˵ôZKMONITORµÄÈÕÖ¾£¬ÀïÃæÒ²´øÁË|
## cat ${root}/*.${file_yesterday} | grep '20..-.*LOG:.*|.*' | awk '{$1="";$2="";$3="";$4="";sub(" LOG:", "");print}' > ${destFile_yesterday}/tlog_${date_yesterday_hadoop}.log
## cat ${root}/*.${file_today} | grep '20..-.*LOG:.*|.*' | awk '{$1="";$2="";$3="";$4="";sub(" LOG:", "");print}' > ${destFile_today}/tlog_${date_today_hadoop}.log

 
         

cd ${root_path}
list_alldir(){
for file2 in `ls -a $1`
do
if [ x"$file2" != x"." -a x"$file2" != x".." ];then
if [ -d "$1/$file2" ];then
echo "$1/$file2"
cd $1/${file2}
cat $1/${file2}/*.${file_yesterday} | grep '20..-.*LOG:.*|.*' | awk '{$1="";$2="";$3="";$4="";sub(" LOG:", "");print}' > ${destFile_yesterday}/tlog_${date_yesterday_hadoop}_${file2}.log
cat $1/${file2}/*.${file_today} | grep '20..-.*LOG:.*|.*' | awk '{$1="";$2="";$3="";$4="";sub(" LOG:", "");print}' > ${destFile_today}/tlog_${date_today_hadoop}_${file2}.log

 
         

list_alldir "$1/${file2}"
fi
fi
done
}

list_alldir ${root_path}

 
         


cd ${destFile_yesterday}
find . -name "*" -type f -size 0c | xargs -n 1 rm -f
cd ${destFile_today}
find . -name "*" -type f -size 0c | xargs -n 1 rm -f

 
         


### start rsync
flock -xn ${tool_path}/rsync.lock -c "${tool_path}/start.sh"

 
        

注意:

1、一定要使用絕對路徑

2、定義變量時等號兩邊加空格會識別不出來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM