簡單的命令快速下載遠程各種docker 鏡像 github 庫,各種軟件資料。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章