shell 修改Jenkins中config文件 增加邮件配置

3 篇文章 0 订阅
背景:
Jenkins 中很多项目原先并没有配置build失败触发邮件,手动配置比较费时间。
考虑使用shell脚本修改所有项目的config文件,增加邮件触发配置。

shell脚本:
1.找到jobs下所有的config文件
2.对每个文件sed替换,增加邮件触发设置。

问题:
sed 中用 sed -i "s/${var}/${var2}/g" config.xml
替换 如果变量中有<> / 等特殊字符,会报错。



#!/bin/sh

##add email config to all project

checkWords='<reporters/>'
checkWords2=`cat context.txt`
path=/data/jenkins/jobs


##find all config
find $path -maxdepth 2 -type f -name "config.xml" > config.txt

###heck email config isExist
#cat config.txt |while read line
#do
#cat ${line} |grep -E "${checkWords}|${checkWords2}"
#cat ${line} |grep "reporters"|wc -l
#echo ${line}
#echo $checkWords
#echo $checkWords2
#sed -i "s:<reporters/>:<reporters>\n <hudson.maven.reporters.MavenMailer>\n <recipients/>\n <dontNotifyEveryUnstableBuild>false</dontNotifyEveryUnstab
leBuild>\n <sendToIndividuals>true</sendToIndividuals>\n <perModuleEmail>true</perModuleEmail>\n </hudson.maven.reporters.MavenMailer>\n </reporters>:g"
test.xml
line='/data/jenkins/jobs/alpha-picture-quality-jni/config.xml'
if [ `cat ${line} |grep "reporters"|wc -l` -eq "1" ];then
echo ${line} 1
sed -i "s:<reporters/>:<reporters>\n <hudson.maven.reporters.MavenMailer>\n <recipients/>\n <dontNotifyEveryUnstableBuild>false</dontNotifyEveryUnstab
leBuild>\n <sendToIndividuals>true</sendToIndividuals>\n <perModuleEmail>true</perModuleEmail>\n </hudson.maven.reporters.MavenMailer>\n </reporters>:g"
${line}
elif [ `cat ${line} |grep "reporters"|wc -l` -eq "4" ];then
echo ${line} 4
else
echo ${line} qita
fi
#done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值