通过跳板机复制文件到开发机

1,957 阅读1分钟

#!/bin/bash

传递给脚本或函数的参数个数

当前脚本的文件名

if [ $# -lt 2 ]; then echo "Usage: $0 <user@host:file>" exit 1 fi

传递给脚本或函数的参数

src=1
echosrc

dest=2
echodest

basename 去掉文件名和目录命令

fname=basename $src echo $fname

把文件传到跳板机

if [ -d 1 ];then
  scp -P 8989989 -rsrc sxx@0.0.0.0:/home/sxx/tmp/ echo "scp -r /home/sxx/tmp/fname huh@1.1.1.1:dest; rm -rf /home/sxx/tmp/" > /Users/uoui/work/bin/cp_agent elif [ -f 1 ];then
  scp -P 8989989src sxx@0.0.0.0:/home/sxx/tmp/ #生成一个可以从跳板机拷贝文件到23.78,并从23.78拷贝到目标机的脚本 echo "scp /home/sxx/tmp/fname huh@1.1.1.1:dest; rm -rf /home/sxx/tmp/" > /Users/uoui/work/bin/cp_agent fi

将这个脚本拷贝到跳板机

scp -P 8989989 /Users/uoui/work/bin/cp_agent sxx@0.0.0.0:/home/sxx/tmp/ rm -f /Users/uoui/work/bin/cp_agent

在跳板机上执行拷贝脚本,结果是将源文件拷贝到目标机上

ssh -p 8989989 sxx@0.0.0.0 "sh /home/sxx/tmp/cp_agent; rm -rf /home/sxx/tmp/*"