Wget

如何判斷 wget 是否正在下載文件?

  • February 5, 2013

wget習慣在夜間自動為我下載文件(大多數是 zip 文件)。

但是,有時早上我發現有幾個文件無法解壓縮。我不知道為什麼會這樣,可能是遠端伺服器有問題。

我想編寫一個腳本來定期使用’unzip -t’測試我下載文件夾中的zip文件,但我不想測試正在下載的文件。那麼如何判斷文件是否正在被使用wget呢?

您可以使用fuserlsof

fuser foo.zip

輸出如下所示:

$ fuser archlinux-2013.02.01-dual.iso 
/home/chris/archlinux-2013.02.01-dual.iso: 22506
$ awk -F'\0' '{ print $1 }' /proc/22506/cmdline 
wget

更改下載腳本以將文件下載到臨時名稱或目錄,然後在下載完成後移動結果。這比試圖檢測 wget 仍在工作更可靠;特別是,如果 wget 被中斷(例如通過重新啟動),您將不會冒將部分文件誤認為完整下載的風險。另外,一定要測試 wget 的返回狀態。有可能您的損壞文件實際上是由於下載中斷而導致的截斷文件。

cd incoming &&
wget http://example.com/foo.zip &&
mv foo.zip ..

引用自:https://unix.stackexchange.com/questions/63629