国产亚洲精_丰满老熟好大的大bbb_男男激情做爰视频免费观看_欧美一区二区三区精品国产

國內 Linux 集群服務器網絡差無法 Git Clone 大項目的解決辦法

2023-12-27    前端達人

GitHub 是一個軟件源代碼托管服務平臺,Linux 上使用的大部分工具都可以在上面獲得。

但是由于 GitHub 的服務器在國外,國內訪問經常出現網絡問題導致訪問失敗,尤其是使用 git clone 對 repo 進行克隆的時候,會經常出現因網絡問題而克隆失敗。

Linux 集群服務器的用戶,在比較難實現科學上網的前提下,對大型 repo 克隆的任務顯得尤為困難,而且想使用 gradle build 的話,git clone 似乎是唯一選擇。

既然 git clone 一兩次不成功,那我就想辦法讓他 clone 到成功為止,于是我就寫了一個循環腳本,將它投遞到計算節點上 24h 運行,直到它克隆成功才結束任務。

以克隆 GATK (repo 大小約 300mb)為例,腳本如下:

#!/bin/bash
#SBATCH --job-name=GitClone        #任務名稱
#SBATCH --nodelist=litchi-0-1    #計算節點名稱
#SBATCH --partition=WHEEL        #使用 WHEEL 用戶組
#SBATCH --nodes=1                #使用計算節點數量
#SBATCH --ntasks=1                #使用 1 個線程
#SBATCH --mail-type=end            #任務結束時發送郵件
#SBATCH --mail-user=***@qq.com  #郵箱地址
#SBATCH --output=/home/$USER/Slurm_JobLogs/JobLog_%j_%x.log        #標準輸出保存路徑
#SBATCH --error=/home/$USER/Slurm_JobLogs/JobLog_%j_%x.err        #標準錯誤保存路徑
#------------------------------------------------------------
# PRINT JOB'S INFORMATION
  source /home/$USER/.bashrc
  threads=$SLURM_NTASKS
  echo "## Job:[$SLURM_JOB_NAME]"
  echo "## Node:[$SLURM_NODELIST]"
  echo "## CPUs:[$SLURM_NTASKS]"
  echo "## Mem:[$SLURM_MEM_PER_NODE]"
  echo `date`
  echo -e $(printf -- "-%.0s" {1..100})"\n" #cut-off-line
#------------------------------------------------------------
# PATH
  repo_url="https://github.com/broadinstitute/gatk.git"
  repo_name="gatk"
#------------------------------------------------------------
# SHELL
  cd /home/$USER/Accessories/Softwares
  while true; do                #循環執行任務
    git clone $repo_url            #執行 git clone
    if [ $? -eq 0 ]; then        #如果以上命令的退出碼等于 0 (任務成功)
      echo "Git clone successful!"
      break                        #則退出循環
    else                        #如果命令的退出碼不等于 0 (任務失敗)
      echo "Git clone failed:( Retrying..."
      rm -rf ./${repo_name}        #則刪除這個repo
      sleep 1                    #睡眠 1 秒緩沖一下繼續循環
    fi
  done
#------------------------------------------------------------
# JOB ENDS
  echo -e $(printf -- "-%.0s" {1..100}) #cut-off-line
  echo "## Runtime:[`sacct -j $SLURM_JOB_ID --format=Elapsed --noheader | awk '{print $1}' | sed -n '2p'`]"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

這個腳本的路徑為 ~/Scripts/GitClone_GATK.sh

將任務投遞到計算節點運行:

sbatch ~/Scripts/GitClone_GATK.sh
  • 1

最終,這個任務運行了 40 次,歷時 13h,終于是克隆成功了!

藍藍設計(paul-jarrel.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的大數據可視化界面設計B端界面設計、桌面端界面設計APP界面設計、圖標定制、用戶體驗設計交互設計、UI咨詢高端網站設計平面設計,以及相關的軟件開發服務,咨詢電話:01063334945。

關鍵詞:UI咨詢UI設計服務公司、軟件界面設計公司、界面設計公司、UI設計公司、UI交互設計公司、數據可視化設計公司、用戶體驗公司、高端網站設計公司

銀行金融軟件UI界面設計能源及監控軟件UI界面設計、氣象行業UI界面設計、軌道交通界面設計、地理信息系統GIS UI界面設計、航天軍工軟件UI界面設計醫療行業軟件UI界面設計教育行業軟件UI界面設計、企業信息化UI界面設計、軟件qt開發、軟件wpf開發軟件vue開發

日歷

鏈接

個人資料

藍藍設計的小編 http://paul-jarrel.com

存檔