Unix

如何刷新使用 wget --mirror 創建的線上網站鏡像?

  • March 15, 2022

一個月前,我使用“ wget –mirror ”創建了我們公共網站的鏡像,以便在即將到來的計劃維護視窗期間臨時使用。我們的主要網站執行 HTML、PHP 和 MySQL,但鏡像只需要 HTML,不需要動態內容、PHP 或數據庫。

以下命令將創建我們網站的簡單線上鏡像:

wget --mirror http://www.example.org/

請注意,Wget 手冊--mirror“目前等效於-r -N -l inf --no-remove-listing”(人類可讀的等效項是 `–recursive –timestamping –level=inf –no-remove-listing.

現在是一個月後,網站的大部分內容都發生了變化。我希望 wget 檢查所有頁面,並下載任何已更改的頁面。但是,這是行不通的。

我的問題:

除了刪除目錄重新執行鏡像外,我需要做什麼來刷新網站的鏡像?

http://www.example.org/index.html上的頂級文件沒有改變,但還有許多其他文件已經改變。

我認為我需要做的就是重新執行wget --mirror,因為這--mirror意味著標誌--recursive“指定遞歸下載”和--timestamping“除非比本地更新,否則不要重新檢索文件”。我認為這會檢查所有頁面,並且只檢索比我的本地副本更新的文件。我錯了嗎?

但是, wget 在第二次嘗試時不會遞歸該站點。‘wget –mirror’ 會檢查http://www.example.org/index.html,注意這個頁面沒有改變,然後停止。

--2010-06-29 10:14:07--  http://www.example.org/
Resolving www.example.org (www.example.org)... 10.10.6.100
Connecting to www.example.org (www.example.org)|10.10.6.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Server file no newer than local file "www.example.org/index.html" -- not retrieving.

Loading robots.txt; please ignore errors.
--2010-06-29 10:14:08--  http://www.example.org/robots.txt
Connecting to www.example.org (www.example.org)|10.10.6.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 136 [text/plain]
Saving to: “www.example.org/robots.txt”

    0K                                                       100% 6.48M=0s
2010-06-29 10:14:08 (6.48 MB/s) - "www.example.org/robots.txt" saved [136/136]

--2010-06-29 10:14:08--  http://www.example.org/news/gallery/image-01.gif
Reusing existing connection to www.example.org:80.
HTTP request sent, awaiting response... 200 OK
Length: 40741 (40K) [image/gif]
Server file no newer than local file "www.example.org/news/gallery/image-01.gif" -- not retrieving.

FINISHED --2010-06-29 10:14:08--
Downloaded: 1 files, 136 in 0s (6.48 MB/s)

以下解決方法目前似乎有效。它強制刪除 /index.html ,這會強制 wget 再次檢查所有子連結。但是,wget 不應該自動檢查所有子連結嗎?

rm www.example.org/index.html && wget --mirror http://www.example.org/
wget –mirror –w 3 –p –P c:\wget_files\example2 ftp://username:password@ftp.yourdomain.com

這就是我在基於 Windows 的機器上的操作方式 http://www.devarticles.com/c/a/Web-Services/Website-Mirroring-With-wget/1/

您可以更改目錄結構的路徑,嘗試通過 FTP 下載所有內容,看看是否有幫助。

我還在 Windows 上使用了另一個實用程序“AllwaySync”,效果非常好。

引用自:https://serverfault.com/questions/155743