1 #!bin/bash2 kettleconfighome=/home/vmuser/linbo/kettledemo/job/config
3 apiinfos=/home/vmuser/linbo/kettledemo/job/data/apiinfo
4 api_csv_path_home=/home/vmuser/linbo/test_upload/data_file
5 sendmaildata=/home/vmuser/linbo/kettledemo/job/senddata
6 dtm=`date +"
%y-%m-%d %h:%m:%s"`
7 dt=`date +"
%y%m%d"`
10 lastday=`date -d "
1 day ago
" +"
%y%m%d"`
11 declare -a diffresult
12#先將pord 介面生成的檔案load test的情況告知相關人 ;
13 #sh /home/vmuser/linbo/kettledemo/job/execsh/filecpcase.sh
14 apicnt=(`ls -rt $api_csv_path_home`)
15 #apicnt=(unilever_three_shop_sales_retrun)
16for((i=0;i<$ ;i++));
17do
18 strinfo=""
19#預設不傳送郵件;
20 sendmail=false
21 apiname=$
22#到prod 目錄下查將今天生成的檔案篩選出來
23 cd $api_csv_path_home/$apiname/prod
24 cmmd00="
ls --full-time ./ | sed -n '/$(date +
"%y-%m-%d"
)/p' | awk ''
"25 prod_currentdatefile=(`eval $cmmd00`)
26#刪除prod 3天前介面生成的檔案
27find ./ -mtime +3 -delete
28 cd $api_csv_path_home/$apiname/test
29 cmmd02="
ls --full-time ./ | sed -n '/$(date +
"%y-%m-%d"
)/p' | awk ''
"30 test_currentdatefile=(`eval $cmmd02`)
31#刪除test 3天前介面生成的檔案
32find ./ -mtime +3 -delete
33 #echo
"$_$apiname.prod.[$] :$
"34 #echo
"$_$apiname.test.[$] :$ "35
if (( $ == 0 )); then
36echo
"**************** $apiname 今天沒有生成檔案 不需要對比 continue ! ***************"37
continue
38fi
39for((j=0;j<$;j++));
40do
41 apicsvpath=$/$
42 prod_csvname=$
43#假如prod介面下今天只生成了1個檔案 並且test環境也有檔案生成 就直接使用test環境的檔案進行比較,否則使用生產環境的檔案與測試環境的檔案進行絕對匹配 ;
44if [[ $ = 1 && $ = 1 ]]; then
45 uat_csvname=$
46else
47 uat_csvname="
uat_$prod_csvname"48
fi49
#獲取prod 和 test 環境當天生成檔案的大小和行數 ;注意是檔案建立日期為今天並不是檔名稱中的日期;
50 prod_filesize=`ls -l $/prod/$ | awk''
`51 test_filesize=`ls -l $/test/$ | awk''
`52 prod_filerowcnt=`cat $/prod/$ | wc -l`
53 test_filerowcnt=`cat $/test/$ | wc -l`
5455
if (( $prod_filesize != 0 )); then
56 # echo
"刪除上一天的傳送容 rm -rf $/$/$ "57
rm -rf $/$/$
58if [[ -d "
$/$/$/$
" ]]; then
59 #echo
"$ 檔案存在 則刪除,保持每次都是最新需要傳送的內容 ! "60
rm -rf $/$/$/$/*
61fi
62#"建立 $/$/$/$ 目錄"
63mkdir -p $/$/$/$
64#"將 $ 和 $ 檔案cp 到 $sendmaildata/$/$/$ 目錄下 "
65cp $apicsvpath/prod/$ $sendmaildata/$/$dt/$
66cp $apicsvpath/test/$ $sendmaildata/$/$dt/$
67cd $sendmaildata/$/$dt/$/
68sort $ -o $
69sort $ -o $
70diff -ihb $ $ >./$_$(date +"%y%m%d_%h%m%s")_diff.log
71diffflag=`cat ./$_$(date +"%y%m%d_%h%m%s")_diff.log | wc -l`
72if (( $diffflag != 0 )); then
73strinfo="$prod_csvname 【 filesize=$b , rowcnt=$行 】;
$uat_csvname 【 filesize=$b , rowcnt=$行 】;$strinfo"
74# echo "--------修改傳送郵件標誌--------"
75sendmail=true
76else
77rm -rf $ $ $_$(date +"%y%m%d_%h%m%s")_diff.log
78diffresult["$_$"]="$.$和$[$prod_filesize : $prod_filerowcnt]\n"
79fi
80: '
81else
82echo " $prod_csvname 和 $uat_csvname 檔案大小為 0 無需比較 !"83'
84fi
85done
86if [[ $sendmail = true ]]; then
87#傳送郵件前需要修改的配置 ;
88sed -i "s#^attachment_filepath=.*#attachment_filepath=//home//vmuser//linbo//kettledemo//job//senddata//$//$#g" $kettleconfighome/sandmailvariate.properties
89sed -i "s#^var1=.*#var1=#g" $kettleconfighome/sandmailvariate.properties
90sed -i "s#^var2=.*#var2=$apiname#g" $kettleconfighome/sandmailvariate.properties
91echo ">>>>>>>>>>>>>>>>>>>>>>>> 開始傳送郵件 >>>>>>>>>>>>>>>>>>>>>"
92#sh /home/vmuser/linbo/kettledemo/job/kjb/execsendmail.sh
93fi
9495
done
96echo -e "$" >>/home/vmuser/linbo/kettledemo/job/log/$/$(date +"%y%m%d_%h").log
檔案內容對比
usr bin perl w open file,d 協議書 學號.txt or die cannot open 1 協議書 學號.txt 中第一列為協議書編號 唯一 第二列為對應的學號 唯一 第三列為對應的學生姓名 out d 學號.txt 輸出的比對結果 open out,out while 2...
Linux vimdiff對比檔案
在linux中對兩個檔案進行對比實用技巧 1 vimdiff file1 file2 終端下輸入該命令進入 vim,垂直分隔視窗進行比較 2 vimdiff o file1 file2 水平分隔視窗進行比較 3 ctrl w j,k,h,l 上下左右切換游標所在的視窗,括號中表示可以是其中之一,按下...
python 檔案對比
在這個模組中,我們需要了解的知識 包含在第二個系列行中,但不包含第乙個 包含在第乙個系列行中,但不包含第二個 兩個系列行一致 存在增量差異 存在差異字元 第一種對比方法 你覺得 但是以上這種方式比較起來讓人覺得 眼花繚亂 為了簡潔明瞭,我們還可以採用另一種方式。第二種對比方式 在我們專案的資料夾裡會...