jenkins 常用shell

苦逼yw發表於2024-10-30

1、釋出前端shell

ip="192.168.31.33"
port=22
# 前端打包後的包名
dist_name="dist"
# app的名字,app下有index.html
app_name="dist"
# app所在的目錄
app_dir="/data/project/html/nmg-ibuilds-pc-visitor"
#備份個數
bak_count=3
# 備份目錄
bak_dir="/data/project/html/nmg-ibuilds-pc-visitor"

npm install  --registry=https://registry.npmmirror.com
npm run build:prod

ssh -p $port $ip "if  [ ! -d $app_dir ]; then mkdir -p $app_dir; fi"
ssh -p $port $ip "if  [ ! -d $bak_dir ]; then mkdir -p $bak_dir; fi"
ssh -p $port $ip "if  [ -e $app_dir/$app_name ]; then mv $app_dir/$app_name ${bak_dir}/${app_name}-$(date +'%Y-%m-%d_%H:%M:%S'); fi"

scp -P $port -rp $dist_name $ip:$app_dir
if [ "$app_name" != "$dist_name" ]
then
    ssh -p $port $ip "mv $app_dir/$dist_name $app_dir/$app_name"
fi

# 刪除多餘的備份 ,tail -n +3表示第三行之後包含第三行
ssh -p $port $ip "cd $bak_dir && ls -lt | grep ${app_name}- | awk '{print \$NF}' | tail -n +${bak_count} |  tail +2  | xargs -I {} rm -rf  {}"

相關文章