Wget

如果時間戳未更改,則繼續下載

  • April 19, 2022

我想鏡像一個包含大量更新數據庫轉儲的站點。閱讀手冊頁後,我並不完全理解-Nand-c選項以及它們如何組合。wget

有沒有辦法下載文件,最好是使用 wget,這樣:

  • 如果伺服器的時間戳比本地時間戳更新,則下載替換本地文件
  • 如果伺服器的時間戳與本地相同,但遠端大小較大,則 wget 繼續下載

我碰巧知道伺服器支持發送修改時間。

wget 手冊提供的資訊多於man wget

如果滿足以下兩個條件之一,則文件被視為新文件:

  1. 該名稱的文件在本地尚不存在。
  2. 該名稱的文件確實存在,但遠端文件的修改時間比本地文件的更新時間要晚。

為了實現這一點,程序需要知道本地和遠端文件的最後修改時間。我們將此資訊稱為文件的時間戳。

GNU Wget 中的時間戳是使用--timestamping( -N) 選項或通過 timestamping = on 指令打開的.wgetrc。使用此選項,對於要下載的每個文件,Wget 將檢查是否存在同名的本地文件。如果是這樣,並且遠端文件較舊,Wget 將不會下載它。

如果本地文件不存在,或者文件大小不匹配,無論時間戳如何,Wget 都會下載遠端文件。

簡而言之,-N應該按您的要求做。

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