1 #!bin/bash
2
3 kettleConfigHome=/home/vmuser/linbo/kettleDemo/job/config
4 apiInfos=/home/vmuser/linbo/kettleDemo/job/data/apiInfo
5 pfile=/home/vmuser/linbo/kettleDemo/job/practiceSH/profiles
6 api_csv_path_home=/home/vmuser/linbo/test_upload/data_file
7 sendMailData=/home/vmuser/linbo/kettleDemo/job/sendData
8 dtm=`date +"%Y-%m-%d %H:%M:%S"`
9 dt=`date +"%Y%m%d"`
10 lastDay=`date -d "1 day ago" +"%Y%m%d"`
11 echo "lastDay=${lastDay}"
12
13 ls $api_csv_path_home >$apiInfos/apiName.txt
14 ## 判断有多少接口需要进行文件对比,有几行就说明有几个接口
15 apiCnt=$(cat ${apiInfos}/apiName.txt | wc -l)
16 echo "****************共计有 $apiCnt 个api接口需要进行csv文件对比!*******************"
17 for((i=1;i<=apiCnt ;i++));
18 do
19 sendMail=false ;
20
21 cd $pfile
22 apiName=`cat $apiInfos/apiName.txt |sed -n "${i}p"`
23 echo "${i}_apiName=$apiName"
24 rm -rf $apiInfos/${lastDay}_${apiName}_csvList.txt
25
26 cd $api_csv_path_home/$apiName/prod
27 ls |grep ${dt}. >$apiInfos/${dt}_${apiName}_csvList.txt
28 # 今天生成的csv文件个数
29 lineCnt=$(awk 'END{print NR}' $apiInfos/${dt}_${apiName}_csvList.txt)
30 if [[ ${lineCnt} == 0 ]]; then
31
32 echo "**************** lineCnt=$lineCnt 今天没有生成文件 不需要对比 continue ! ***************"
33 continue
34 fi
35 echo "#修改邮件主题 topic=$apiName "
36 cd $kettleConfigHome
37 sed -i "s#^topic=.*#topic=${dt}_$apiName#g" ./sandMailVariate.properties
38
39
40 for((j=1;j<=$lineCnt;j++));
41 do
42 apiCsvPath=${api_csv_path_home}/${apiName}
43 prod_csvName=`cat $apiInfos/${dt}_${apiName}_csvList.txt |sed -n "${j}p"`
44 uat_csvName=uat_$prod_csvName
45 echo "${i}_${j}_prod_csvName=$prod_csvName"
46 echo "${i}_${j}_uat_csvName=$uat_csvName"
47
48 diff $apiCsvPath/prod/${prod_csvName} $apiCsvPath/test/${uat_csvName} >$sendMailData/difflog/${prod_csvName%.*}_diff_${dt}.log
49 flags=`cat $sendMailData/difflog/${prod_csvName%.*}_diff_${dt}.log |wc -l`
50 echo "flags=${flags}"
51 if [[ $flags != 0 ]]; then
52 echo "删除上一天的发送容 rm -rf ${sendMailData}/${apiName}/${lastDay} "
53 rm -rf ${sendMailData}/${apiName}/${lastDay}
54 echo "创建 ${sendMailData}/${apiName}/${dt}/${prod_csvName%.*} 目录"
55 mkdir -p ${sendMailData}/${apiName}/${dt}/${prod_csvName%.*}
56 echo "将日志移动到 $sendMailData/${apiName}/${dt}/${prod_csvName%.*}目录下 "
57 mv $sendMailData/difflog/${prod_csvName%.*}_diff_${dt}.log $sendMailData/${apiName}/${dt}/${prod_csvName%.*}
58 echo "将 ${prod_csvName} 和 ${uat_csvName} 文件cp 到 $sendMailData/${apiName}/${dt}/${prod_csvName%.*} 目录下 "
59 cp $apiCsvPath/prod/${prod_csvName} $sendMailData/${apiName}/$dt/${prod_csvName%.*}
60 cp $apiCsvPath/test/${uat_csvName} $sendMailData/${apiName}/$dt/${prod_csvName%.*}
61 echo "修改配置 发送邮件的时候 将该路径下的内容作为附件 发送出去 !"
62 sed -i "s#^attachment_filePath=.*#attachment_filePath=//home//vmuser//linbo//kettleDemo//job//sendData//${apiName}//${dt}#g" $kettleConfigHome/sandMailVariate.properties
63
64 echo "--------修改发送邮件标志--------"
65 sendMail=true
66 fi
67
68 done
69 echo "sendMail=$sendMail"
70
71 if [[ $sendMail == true ]]; then
72
73 echo "********************************发送邮件********************************"
74 sh /home/vmuser/linbo/kettleDemo/job/kjb/execSendMail.sh
75 fi
76
77
78
79 done