1. 程式人生 > >jenkins通過Execute shell中通過scp/ssh命令,將一臺機器中專案遠端拷貝到另外一臺機器,修改檔案中內容

jenkins通過Execute shell中通過scp/ssh命令,將一臺機器中專案遠端拷貝到另外一臺機器,修改檔案中內容

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 [email protected]:/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 [email protected] \"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 [email protected]:/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 [email protected] \"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