做研究开发和项目实战中经常要下载国外的docker镜像和软件源代码,软件安装包,
这个过程如果子国外的服务器上执行,一般不会超过10秒,如果在中国境内的机器上执行,
一般要5分钟甚至几个小时,中间可能还会断线,,,,各种郁闷的事情都可能发生,导致工作效率极其低下。
最快的是使用但是国内有很多限制,不是所有人都可以做到的,有时还是很慢.
后来我就干脆到国外服务器下载后,ssh 搬回本地,或通过启动一个nginx ,然后 web 方式下载回本地计算机。但是这样好麻烦,很影响工作,特别是下载数量多的时候,,,
最近整合了一种可行的,也符合政策的方法:
通过ssh 自动下载回来
#!/usr/bin/env bash
echo "前提条件: 1.有一个账户密码,设置免密登陆,可以ssh 到国外的一台服务器server 2. server可以上互联网。3. 操作终端安装了ssfs命令: 如果没有安装 yum install fuse-sshfs " 详细参考: https://www.howtoing.com/how-to-install-sshfs-on-centos-7
echo "输入是个获取文件的命令组,产生一个文件a,输出是本地文件系统的一个文件a"
echo "检测ssfs命令是否存在,to do "
FOREIGN_HOST_IP="你的服务器IP"
FOREIGN_HOST_PORT=你的服务器端口
REMOTE_SERVER_SAVE_DIR="/tmp"
FILE_NAME="myfile.tgz"
TARGET_FILE_NAME=${REMOTE_SERVER_SAVE_DIR}/${FILE_NAME}
REMOTE_MIRROR_DIR=`pwd`/tmp/mirror
LOCAL_SAVE_DIR=`pwd`/tmp/local
mkdir -p ${REMOTE_MIRROR_DIR}
mkdir -p ${LOCAL_SAVE_DIR}
echo "下面的命令,请根据实际业务需求填写"
USER_COMMAND="mkdir -p ${REMOTE_SERVER_SAVE_DIR} docker pull k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1; docker image save k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1 | gzip > ${TARGET_FILE_NAME};"
echo "挂载远程服务器目录${REMOTE_SERVER_SAVE_DIR}到本地${LOCAL_SAVE_DIR}"
sshfs -p 27210 root@${FOREIGN_HOST_IP}:${REMOTE_SERVER_SAVE_DIR} $REMOTE_MIRROR_DIR
echo "执行用户定义的远程下载任务"
ssh -p 27210 root@${FOREIGN_HOST_IP} "${USER_COMMAND}"
echo "拷贝文件到本地"
cp $REMOTE_MIRROR_DIR/${FILE_NAME} ${LOCAL_SAVE_DIR}
pwd;ls -al
把上面代码保存为fastdownload 文件,然后 chmod +x fastdownload
执行fastdownload 结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190920100524596.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5ZnJlZWFuZ2Vs,size_16,color_FFFFFF,t_70