1、通过.bat文件上传代码
upload.bat文件内容
%1是远程服务器地址 例如10.0.0.127
%2 是远程服务器前端项目所在的目录地址 例如:a/b/project/
执行命令例如: test.bat 10.0.0.127 a/b/project/
@echo off
:loop
set /p a=Do you want to upload?(yes)
if /i '%a%'=='yes' (
// scp 加密复制 上传本地代码到远程
scp -r ./dist root@%1:%2/dist_new_%date:~0,4%%split%%date:~5,2%%split%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
// D:\Git\Git\bin\sh.exe" --login -i -c 使用bat执行shell脚本
// 因为linux服务器使用shell比较方便
// 该bash -s 命令的意思是“在新的 bash 会话中执行以下命令”。
// 该-s 标志使其从标准输入读取,
// 该< script.sh 位将本地脚本文件读入标准输入。
"D:\Git\Git\bin\sh.exe" --login -i -c "ssh root@%1 'bash -s' < ./script.sh %2 dist_new_%date:~0,4%%split%%date:~5,2%%split%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%"
)
exit 0
script.sh文件内容
cd $1
dirdate=`date +%Y%m%d`_`date +%H%M%S`
pwd
if [ ! -d "$2" ];then
echo "文件夹不存在"
echo $2
else
echo "文件夹存在"
echo $2
mv ./dist ./dist_${dirdate}
ls
mv ./$2 ./dist
ls
echo "更新完成"
fi
2、通过shell命令上传代码
$1是远程服务器地址 例如10.0.0.127
$2 是远程服务器前端项目所在的目录地址 例如:a/b/project/
执行命令例如: sh test.sh 10.0.0.127 a/b/project/
upload.sh 内容(远程加载执行本机sh文件内容)
read -r -p "Are You Sure? [Y/n] " iskill
case $iskill in
[yY][eE][sS]|[yY])
echo "Yes"
dirdate_1=`date +%Y%m%d`_`date +%H%M%S`
scp -r ./dist root@$1:$2/dist_new_${dirdate_1}
ssh root@remoteAdress 'bash -s' < ./script.sh $2 dist_new_${dirdate_1}
;;
[nN][oO]|[nN])
echo "No"
;;
*)
echo "Invalid input..."
exit 1
;;
esac
exit 0
script.sh文件内容
cd $1
dirdate=`date +%Y%m%d`_`date +%H%M%S`
pwd
if [ ! -d "$2" ];then
echo "文件夹不存在"
echo $2
else
echo "文件夹存在"
echo $2
mv ./dist ./dist_${dirdate}
ls
mv ./$2 ./dist
ls
echo "更新完成"
fi
upload.sh 内容(远程加载执行本分shell命令)
注意:“ENDSSH” 关键词会因为tab格式化失效
read -r -p "Are You Sure? [Y/n] " iskill
case $iskill in
[yY][eE][sS]|[yY])
echo "Yes"
scp -r ./dist root@remoteAdress:/a/project/dist_new
ssh root@remoteAdress 'bash -s' <<'ENDSSH'
cd /a/project/
dirdate=`date +%Y%m%d`_`date +%H%M%S`
pwd
if [ ! -d "dist_new" ];then
echo "文件夹不存在"
else
mv ./dist ./dist_old
ls
mv ./dist_new ./dist
ls
echo "文件夹存在"
fi
ENDSSH
;;
[nN][oO]|[nN])
echo "No"
;;
*)
echo "Invalid input..."
exit 1
;;
esac
exit 0