gitlink_runner_ssh/script/scp_expect

43 lines
1.1 KiB
Plaintext
Executable File

#!/usr/bin/expect
set timeout -1
set local_file $env(JIANMU_LOCAL_FILE)
set remote_user $env(JIANMU_REMOTE_USER)
set remote_host $env(JIANMU_REMOTE_HOST)
set remote_port $env(JIANMU_REMOTE_PORT)
set remote_file $env(JIANMU_REMOTE_FILE)
set gateway_user $env(JIANMU_GATEWAY_USER)
set gateway_host $env(JIANMU_GATEWAY_HOST)
set gateway_port $env(JIANMU_GATEWAY_PORT)
set temp_file $env(JIANMU_TEMP_FILE)
# 上传文件到跳板机
spawn scp -P $gateway_port -r $local_file $gateway_user@$gateway_host:$temp_file
expect {
"yes/no" { send "yes\r"; exp_continue }
}
# 登录跳板机
spawn ssh -p $gateway_port $gateway_user@$gateway_host
expect {
"yes/no" { send "yes\r"; exp_continue }
"*$ " | "*# " {
# 从跳板机复制文件到目标主机
send "scp -P $remote_port -r $temp_file $remote_user@$remote_host:$remote_file\r"
expect {
"yes/no" {
send "yes\r"
exp_continue
}
"*$ " | "*# " {
send "rm $temp_file\r"
expect "*$ " | "*# " {send "exit\r"}
}
}
}
}