jenkins通过Execute shell中通过scp/ssh命令,将一台机器中项目远程拷贝到另外一台机器,修改文件中内容
1、前置条件安装expectyum install expect -y2、在Execute shell中编写如下命令export BUILD_ID=DONTKILLMEexport JAVA_HOME=/usr/local/jdkexpect -c "spawn scp -r /root/.jenkins/workspace/youproj
·
1、前置条件
安装expect
yum install expect -y
2、在Execute shell中编写如下命令
在jenkins中执行以下命令的时候,前提条件是现在jenkins机器上手动执行一下ssh,scp下的命令
export BUILD_ID=DONTKILLME
export JAVA_HOME=/usr/local/jdk
expect -c "
spawn scp -r /root/.jenkins/workspace/youprojectPath remoteUsername@remoteip:/usr/local/work/
expect {
\"*assword\" {set timeout 300; send \"youpassword\n\";}
\"yes/no\" {send \"yes\n\"; exp_continue;}
}
expect eof"
export BUILD_ID=DONTKILLME
export JAVA_HOME=/usr/local/jdk
expect -c "
spawn ssh test@ip \"cd /home/test/temp; sh jenkins-test.sh;\"
expect {
\"*assword\" {set timeout 300; send \"test\n\";}
\"yes/no\" {send \"yes\r\"; exp_continue;}
}
expect eof"
export BUILD_ID=DONTKILLME
expect -c "
spawn scp -r /root/.jenkins/workspace/cplan.test.qd-admin-project/youxuan-webapp/target/youxuan_webapp test@ip2:/home/test/apache-tomcat-7.0.85/webapps
expect {
\"*assword\" {set timeout 300; send \"test\n\";}
\"yes/no\" {send \"yes\n\"; exp_continue;}
}
expect eof"
expect -c "
spawn ssh test@ip \"cd /home/test/apache-tomcat-7.0.85/webapps;mv youxuan_webapp qd-admin-project; cd /home/test/apache-tomcat-7.0.85/bin/;export JAVA_HOME=/home/test/jdk1.7.0_80; sh startup.sh;\"
expect {
\"*assword\" {set timeout 300; send \"test\n\";}
\"yes/no\" {send \"yes\r\"; exp_continue;}
}
expect eof"
其中jenkins-test.sh的内容如下:
tomcatPid=`ps -ef | grep apache-tomcat-7.0.85 | grep -v grep | awk '{print $2}'`
kill -9 $tomcatPid
tomcatPid=`ps -ef | grep apache-tomcat-7.0.85 | grep -v grep | awk '{print $2}'`
echo $tomcatPid
cd /home/test/apache-tomcat-7.0.85/webapps
rm -rf qd-admin-project*
参考另外一篇博文:
https://blog.csdn.net/tototuzuoquan/article/details/80290091
修改文件中的内容案例:
sed 's/-developing/-release/g' pom.xml > pom2.xml
rm -rf pom.xml
mv pom2.xml pom.xml
更多推荐
已为社区贡献26条内容
所有评论(0)