CentOS7 2.新项目上线脚本
生活随笔
收集整理的這篇文章主要介紹了
CentOS7 2.新项目上线脚本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我司一個客戶項目對應代碼倉庫的一個分支,每次新項目上線總是要從master復制一個分支,接著git clone到本地,在IDEA里面替換配置文件內容,上傳到代碼倉庫,啟動項目,配置nginx.conf,每次新項目上線耗時約30-60min。鑒于本人超級懶,不喜歡重復動作,只喜歡摸魚,于是琢磨出了一套新項目上線腳本,每次腳本執行耗時約5-10min。
new_project_install.sh
echo "新建文件夾/opt/app/code" mkdir -p /opt/app/codeecho "進入/opt/app/code" cd /opt/app/code#將git用戶名、密碼、倉庫地址替換成自己的 echo "git拉取代碼" git clone https://username:password@gitee.com/xxx/xxx.gitecho "進入項目文件夾" cd xxx#必須是不存在的分支 echo "切換到新的分支" git checkout -b $1echo "推送新的分支代碼到遠端倉庫" git push origin $1echo "拉取遠端倉庫新的分支代碼" git pull origin $1echo "將遠端倉庫分支與本地倉庫分支關聯" git branch --set-upstream-to=origin/$1echo "再次拉取遠端倉庫新的分支代碼,驗證分支是否關聯上" git pull origin $1echo "pom.xml 替換" find -name "pom.xml" | xargs perl -pi -e "s|demo|$1|g"echo "application.yml 替換" find /opt/app/code/xxx/src/main/resources/ -name "application.yml" | xargs perl -pi -e "s|8081|$3|g"# find 路徑 -name "文件名" | xargs perl -pi -e "s|被替換的字符串|替換后的字符串|g" # ./ 相對位置 echo "application-druid.yml 替換" find /opt/app/code/xxx/src/main/resources/ -name "application-druid.yml" | xargs perl -pi -e "s|localhost|$2|g" find /opt/app/code/xxx/src/main/resources/ -name "application-druid.yml" | xargs perl -pi -e "s|demo|$1|g"echo "maven打包" mvn clean install#cp前添加反斜線,可以直接覆蓋同名文件,不會出現"cp: overwrite `xxx` ?"提示 echo "復制jar" \cp /opt/app/code/xxx/target/$1.jar /opt/appecho "啟動jar" nohup java -jar /opt/app/$1.jar >/dev/null 2>&1 &echo "將所有項目文件放入緩存中" git add .#將git電子郵箱、用戶名替換成自己的 echo "提交代碼到本地倉庫" git config user.email "xxx@qq.com" git config user.name "username" git commit -m "打包$4"echo "拉取遠端倉庫代碼" git pull origin $1echo "推送代碼到遠程倉庫" git push origin $1echo "刪除clone的代碼" rm -rf /opt/app/code/xxx#xxx.cn 替換成自己的域名 #$指最后一行,i是指在讀取文件此行前增加(include)記錄,即倒數第二行添加內容 echo "添加nginx配置" sed -i '$i server {' /usr/local/nginx/conf/nginx.conf sed -i '$i listen 80;' /usr/local/nginx/conf/nginx.conf sed -i '$i server_name '$1'.xxx.cn;' /usr/local/nginx/conf/nginx.conf sed -i '$i location / {' /usr/local/nginx/conf/nginx.conf sed -i '$i proxy_pass http://127.0.0.1:'$3'/;' /usr/local/nginx/conf/nginx.conf sed -i '$i proxy_connect_timeout 600;' /usr/local/nginx/conf/nginx.conf sed -i '$i proxy_read_timeout 600;' /usr/local/nginx/conf/nginx.conf sed -i '$i }' /usr/local/nginx/conf/nginx.conf給腳本賦予執行權限
chmod +x new_project_install.sh$1-分支名、數據庫名(如test)
$2-ip(如192.168.0.2)
$3-port(如某客戶)
$4-git commit信息(如某客戶)
查看 /usr/local/nginx/conf/nginx.conf 配置是否正常
/usr/local/nginx/sbin/nginx -s reload原來苦逼的上線項目,變成兩行腳本,小伙伴有沒有覺得偷懶的感覺很爽。如有任何問題,歡迎留言,讓我們一起愉快的摸魚吧!
總結
以上是生活随笔為你收集整理的CentOS7 2.新项目上线脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐一款好用的jeDate日期控件
- 下一篇: C语言编程题:求一元二次方程组的根