Wget
如何判斷 wget 是否正在下載文件?
我
wget
習慣在夜間自動為我下載文件(大多數是 zip 文件)。但是,有時早上我發現有幾個文件無法解壓縮。我不知道為什麼會這樣,可能是遠端伺服器有問題。
我想編寫一個腳本來定期使用’unzip -t’測試我下載文件夾中的zip文件,但我不想測試正在下載的文件。那麼如何判斷文件是否正在被使用
wget
呢?
您可以使用
fuser
或lsof
。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 ..