zoukankan      html  css  js  c++  java
  • shell 使用diff 命令对比文件 并发送邮件

     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
  • 相关阅读:
    数据分析1-2
    数据分析1-1
    数据分析案例:
    数据分析1:安装tushare安装包
    小爬爬7:回顾&&crawlSpider
    小爬爬6: 网易新闻scrapy+selenium的爬取
    小爬爬6:中间件
    小爬爬6:2请求传参
    前端 -----jQuery的选择器
    前端 ----jQuery的介绍
  • 原文地址:https://www.cnblogs.com/linbo3168/p/14154061.html
Copyright © 2011-2022 走看看