shell脚本

上次写了jenkins的使用以及配置,这次记下脚本实现的部分,前面提到,我们是把项目的打包构建和发布分开来操作,主要分成了build-*.sh 和 deploy-*.sh两部分,build-*.sh作用是打包构建,deploy-*.sh的作用是将打包好的文件放在远程服务器上。



对shell不熟悉,简单理解为各种命令的集合,事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条条编写然后敲回车。
#!/bin/bash
projects_root=/root/.jenkins/workspace/dem-50/
mvn_bin=/usr/local/tools/maven-3.5.2/bin/mvn
# Build entity jar
cd $projects_root/zjenergy-fssc-entity
$mvn_bin clean install -DskipTests
if [ $? -ne 0 ]; then
        echo "Build fssc-entity failed."
        exit 1
fi
# Build web jar
cd $projects_root/zjenergy-fssc-web
$mvn_bin clean install -DskipTests
if [ $? -ne 0 ]; then
        echo "Build fssc-web failed."
        exit 1
fi

# Build webapp war
rm -rf /root/.m2/repository/com/kpmg/te
cd $projects_root/zjenergy-fssc-web-webapp
$mvn_bin -U -DskipTests -Pdem clean package
if [ $? -ne 0 ]; then
        echo "Build fssc-webapp failed."
        exit 1
fi
~  


原来并不会写脚本,照着大神的脚本试着写了一个,发现并不能用,会报出
bash: ./test.sh :权限不够
这样的错误,百度了下,说是要赋予权限才能执行,使用chmod对脚本进行权限的赋予,于是使用了简单粗暴有效的命令

[root]# chmod 777 ./test.sh 

语法为:chmod abc file 
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 
r=4,w=2,x=1 
赋予了读权限,写权限,执行或切换权限后,执行一把依然报错,这次是说
-bash: /root/bin/test.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
又百度了一把说是Windows下编写的文件保存格式不对,使用了DOS文件格式造成的,补救措施是在编辑之后用命令改变编辑格式
:set ff=unix
:wq
保存之后,执行成功~  

然后再贴上发布的脚本,将打包好的war包上传至目标服务器上

#!/bin/bash
fssc_wars_path=/opt/fsscwars
war_version=$1
projects_root=/root/.jenkins/workspace/dem-50/

cd $projects_root/zjenergy-fssc-web-webapp
scp target/fssc-pc\(dem\).war root@10.154.70.50:/usr/local/tools/apache-tomcat-8.5.23/webapps/fssc.war



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值