背景:開發將其代碼放到svn裏面,如何將修改後存放到svn裏的代碼發佈到線上?
簡單作法:寫個shell腳本,用於代碼發版。好比開發的代碼存放svn的路徑是:svn://112.168.19.120/kevin_appweb
首先在發佈機上建立一個發版目錄 [root@kevin ~]# mkdir -p /Data/webroot_svncode/Online_app 而後將svn裏的代碼下載到發佈機本地的發版目錄裏 [root@kevin ~]# cd /Data/webroot_svncode/Online_app [root@kevin Online_app]# svn checkout svn://112.168.19.120/kevin_app //svn checkout通常都是目錄 [root@kevin Online_app]# ls kevin_app [root@kevin Online_app]# cd kevin_app [root@kevin kevin_app]# ll kevin.war //這個就是開發放在svn倉庫裏的war包 這樣後面要想再將svn裏最新修改的代碼拿到發佈機本地,只須要切換到發版目錄下的svn目錄裏進行更新命令便可! [root@kevin Online_app]# cd kevin_app //必定要切換到svn對應代碼目錄下進行更新命令 [root@kevin kevin_app]# /usr/bin/svn update At revision 20. [root@kevin kevin_app]# ll //下面就是更新後的最新代碼包 kevin.war 下面附上一個簡單的發版腳本: 將代碼發佈到遠程線上服務器上(腳本中的22022是遠程服務器的ssh端口);即將最新代碼版本發佈到線上後,重啓線上的tomcat服務: [root@kevin kevin_app]# cat /Data/webroot_svncode/up_Online.sh #!/bin/bash REMOTE_SERVER_IP="112.168.19.75" DEST_DIR="/Data/app/tomcat-7/webapps/" cd /Data/webroot_svncode/Online_app/kevin_app /usr/bin/svn update /usr/bin/ssh -p22022 root@${REMOTE_SERVER_IP} "rm -rf /Data/app/tomcat-7/webapps/kevin*"; /usr/bin/rsync -e "/usr/bin/ssh -p22022" -avpgolr /Data/webroot_svncode/Online_app/kevin_app/kevin.war root@${REMOTE_SERVER_IP}:${DEST_DIR}; sleep 10 /usr/bin/ssh -p22022 root@${REMOTE_SERVER_IP} "/bin/sh /Data/app/tomcat-7/start.sh";