From dba1a7b71711bfb0304d7a15992985a529d4f643 Mon Sep 17 00:00:00 2001 From: "zhangkun9038@dingtalk.com" Date: Thu, 8 Sep 2022 17:56:16 +0000 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BA=86=EF=BC=8C=E6=88=96?= =?UTF-8?q?=E8=80=85=E8=AF=B4=E7=BB=95=E8=BF=87=E4=BA=86=E6=9F=90=E4=BA=9B?= =?UTF-8?q?=E8=99=9A=E6=9C=BA=E4=B8=8D=E8=83=BD=E5=9C=A8systemd=E9=9D=9Ero?= =?UTF-8?q?ot=E7=94=A8=E6=88=B7=E6=9C=8D=E5=8A=A1=E9=87=8C=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E8=B0=83=E7=94=A8sudo=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- checkService.sh | 12 ++++++++---- frontEndUpgrade.sh | 9 ++++++--- ossUpgrade.sh | 20 ++++++++++++++++++-- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/checkService.sh b/checkService.sh index 4aa133f..b33343a 100755 --- a/checkService.sh +++ b/checkService.sh @@ -1,4 +1,9 @@ #!/bin/bash +## Usage +# 如果虚机上的shell里面不能执行sudu,这个脚本就能派上用场,在root用户下执行此脚本,也就绕过sudo限制了 +## ./checkService.sh ztsjxxxt.jar "/usr/local/jar" ztsjxxxt "/home/ubuntu/" "production/investigate/backEnd/" + + fileName=$1 projectPath=$2 serviceName=$3 @@ -7,9 +12,6 @@ ossPath=$5 PATH=PATH:/usr/bin:/usr/sbin -## Usage -## ./checkService.sh ztsjxxxt.jar "/usr/local/jar" ztsjxxxt "/home/ubuntu/" - cd $workDirectory echo "current path: $(pwd)" if [ ! -f "$fileName" ];then @@ -39,10 +41,12 @@ else fi if [ ${oriSum} = ${desSum} ];then + journalctl -n 1000 -xe -t autoDeploy > ${workDirectory}autoDeploy.log + ${workDirectory}ossutil cp ${workDirectory}autoDeploy.log oss://ztupload/${ossPath}autoDeploy.log echo "destination file is same with origin file,no need to replace" exit 0 fi -sudo systemctl restart $serviceName +systemctl restart $serviceName sleep 10 journalctl -n 1000 -xe -t autoDeploy > ${workDirectory}autoDeploy.log ${workDirectory}ossutil cp ${workDirectory}autoDeploy.log oss://ztupload/${ossPath}autoDeploy.log diff --git a/frontEndUpgrade.sh b/frontEndUpgrade.sh index 62e1b59..1d0c396 100755 --- a/frontEndUpgrade.sh +++ b/frontEndUpgrade.sh @@ -15,9 +15,6 @@ fi echo "2" rm dist -fr -unzip $fileName -echo "projectName: ${projectName}" -mv dist ~/$projectName echo "3" oriSum=$(md5sum $fileName) oriSum="${oriSum% *}" @@ -52,6 +49,12 @@ if [ ${oriSum} = ${desSum} ];then exit 0 fi +cd ~ +unzip $fileName +echo "projectName: ${projectName}" +mv dist ~/$projectName +cd $projectPath + echo "8" if [ -d "$projectName"_bak2 ];then rm "${projectName}"_bak2 -fr diff --git a/ossUpgrade.sh b/ossUpgrade.sh index e1e4500..bb5e291 100755 --- a/ossUpgrade.sh +++ b/ossUpgrade.sh @@ -1,8 +1,11 @@ #!/bin/bash -#usage: +# usage: +## 这个脚本能正常工作的前提是 systemd脚本如果不是root,也能通过sudo 调用高级权限来执行。 +## 否则就要结合checkService.sh一起使用。那个单独放在一个服务里,用root用户执行 # ./ossUpgrade.sh "stage/ztsjxxxt/frontEnd/" html.zip ztsjxxxt ossPath=$1 #末尾别忘了加/ fileName=$2 +serviceName=$3 projectName="${fileName%.*}" PATH=PATH:/usr/bin:/usr/sbin @@ -33,7 +36,13 @@ all=$ossSum echo "oriMd5: "$all all=$curSum echo "curMd5: "$all +logPath=${ossPath%/*} +logPath=${logPath%/*}/logs/ +osslogPath=oss://ztupload/${logPath}autoDeploy.log if [ ${ossSum} = ${curSum} ];then + sudo journalctl -n 1000 -xe -t autoDeploy > ~/autoDeploy.log + ./ossutil cp ~/autoDeploy.log ${osslogPath} -f + echo "uploaded log to ${osslogPath}" echo "destination file is same with oss file,no need to replace" exit 0 else @@ -42,5 +51,12 @@ fi rm $fileName echo "fileName: " $fileName -./ossutil cp oss://ztupload/${ossPath}${fileName} ${fileName} +./ossutil cp oss://ztupload/${ossPath}${fileName} ${fileName} + +sudo systemctl restart $serviceName +sleep 10 + +sudo journalctl -n 1000 -xe -t autoDeploy > ~/autoDeploy.log +./ossutil cp ~/autoDeploy.log osslogPath -f echo "replaced" +