74 lines
1.3 KiB
Bash
74 lines
1.3 KiB
Bash
#!/bin/bash
|
|
|
|
|
|
|
|
# Set Go environment variables
|
|
export GOARCH=amd64
|
|
export GOOS=linux
|
|
export CGO_ENABLED=0
|
|
|
|
|
|
|
|
# 检查并创建 bin 目录
|
|
if [ ! -d "bin" ]; then
|
|
mkdir -p bin
|
|
fi
|
|
|
|
# 定义文件名
|
|
FILE="admin"
|
|
|
|
# 删除旧的编译文件
|
|
rm -f bin/$FILE
|
|
go build -o bin/$FILE main.go
|
|
|
|
# 检查编译是否成功
|
|
if [ ! -f "bin/$FILE" ]; then
|
|
echo "build failed."
|
|
exit 1
|
|
else
|
|
echo "build success."
|
|
fi
|
|
|
|
|
|
Host="114.132.124.145"
|
|
Username="ubuntu"
|
|
Password="@qq20160101"
|
|
|
|
RemotePath="/home/ubuntu/admin"
|
|
RemoteFile="$RemotePath/$FILE"
|
|
LocalFile="bin/$FILE"
|
|
|
|
plink -ssh -batch -pw "$Password" "$Username@$Host" "rm -f '$RemoteFile'"
|
|
if [ $? -eq 0 ]; then
|
|
echo "删除文件成功"
|
|
else
|
|
echo "删除文件失败"
|
|
exit 1
|
|
fi
|
|
|
|
# 传输文件到远程主机
|
|
pscp -batch -pw "$Password" -p "config.yaml" "$Username@$Host:$RemotePath"
|
|
pscp -batch -pw "$Password" -p "$LocalFile" "$Username@$Host:$RemotePath" && \
|
|
plink -ssh -batch -pw "$Password" "$Username@$Host" "chmod +x '$RemoteFile'"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "上传文件成功"
|
|
else
|
|
echo "上传文件失败"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
# 远程执行脚本
|
|
plink -ssh -batch -pw "$Password" "$Username@$Host" "echo '$Password' | sudo -S supervisorctl restart $FILE"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "远程脚本执行成功"
|
|
else
|
|
echo "远程脚本执行失败"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
|