解决了,或者说绕过了某些虚机不能在systemd非root用户服务里不能调用sudo的问题

This commit is contained in:
zhangkun9038@dingtalk.com 2022-09-08 17:56:16 +00:00
parent 66b020b005
commit dba1a7b717
3 changed files with 32 additions and 9 deletions

View File

@ -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 fileno 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

View File

@ -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

View File

@ -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 fileno 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"