簡體   English   中英

使用Wget跳過成功下載的文件

[英]Skip successfully downloaded files using Wget

所以我有這個Bash子程序使用wget下載文件,現在我的問題是如何跳過成功下載的文件。 該腳本下載了大量文件,一旦下載失敗,它會重新下載所有文件,從一開始就覆蓋這些成功的下載(由於重新下載,這可能是不完整的)。

那么如何跳過成功下載的文件呢?

DownloadFile() {
  paramURL=$1
  paramFilename=$2

  if [ $flag_archive_fetch = "false"  ];
  then
      wget "--timeout=180" "--tries=5" "$paramURL" "-O" "${scratch_dir}$paramFilename"
  else
      unzip -o "$archive_file" "$paramFilename" -d "${scratch_dir}"
  fi

  touch "${scratch_dir}$paramFilename"
}

您可以利用Wget --continue (恢復損壞的下載)和--timestamping (僅在Last-modified屬性發生更改時覆蓋成功下載的文件,否則會跳過下載)

wget "--continue ‐‐timestamping --timeout=180" "--tries=5" "$paramURL" "-O" "${scratch_dir}$paramFilename"

另一種選擇是使用--no-clobber而不是--timestamping ,它會跳過已下載的文件而不檢查Last-modified屬性,

 wget "--continue ‐‐no-clobber --timeout=180" "--tries=5" "$paramURL" "-O" "${scratch_dir}$paramFilename"

您可以通過檢查$?來檢查WGET退出狀態代碼 $?

wget .....
# store the error
error=$?
if (( $error != 0 )) 
then
   #handle error
else
   #handle success
fi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM