Wget
如果時間戳未更改,則繼續下載
我想鏡像一個包含大量更新數據庫轉儲的站點。閱讀手冊頁後,我並不完全理解
-N
and-c
選項以及它們如何組合。wget
有沒有辦法下載文件,最好是使用 wget,這樣:
- 如果伺服器的時間戳比本地時間戳更新,則下載替換本地文件
- 如果伺服器的時間戳與本地相同,但遠端大小較大,則 wget 繼續下載
我碰巧知道伺服器支持發送修改時間。
wget 手冊提供的資訊多於
man wget
:如果滿足以下兩個條件之一,則文件被視為新文件:
- 該名稱的文件在本地尚不存在。
- 該名稱的文件確實存在,但遠端文件的修改時間比本地文件的更新時間要晚。
為了實現這一點,程序需要知道本地和遠端文件的最後修改時間。我們將此資訊稱為文件的時間戳。
GNU Wget 中的時間戳是使用
--timestamping
(-N
) 選項或通過 timestamping = on 指令打開的.wgetrc
。使用此選項,對於要下載的每個文件,Wget 將檢查是否存在同名的本地文件。如果是這樣,並且遠端文件較舊,Wget 將不會下載它。如果本地文件不存在,或者文件大小不匹配,無論時間戳如何,Wget 都會下載遠端文件。
簡而言之,
-N
應該按您的要求做。