做研究開發和項目實戰中經常要下載國外的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