2012-04-10 15 views
2

我們正在移動網絡服務器。 (LAMP)如何複製服務器之間的符號鏈接?

Webserver 1有數百個指向不同目錄中文件的符號鏈接(例如../../files/001.png)。當我們轉移到新的服務器時(已將該站點下載到我的計算機,然後使用SFTP客戶端傳輸重新上傳到Webserver 2)。它不復制符號鏈接...

除了在新服務器上重新創建符號鏈接之外,是否有更好的方法來從一臺服務器獲取符號鏈接?

回答

3

像下面這樣的東西?在網絡服務器1:

tar czf - the_directory | (ssh Webserver2 "cd /path/to/wherever && tar xzf -") 

這將創建的東西複製到STDOUT焦油,它管道的解壓通過ssh其他服務器上。它可能比遞歸的ssh副本更快。

+0

任何機會我都可以說服你進一步解釋它的作用和原因:P – hozza 2012-04-10 19:20:56

+0

當然。關鍵是tar保留了符號鏈接。以上只是一個捷徑 - 您可以將Webserver1的內容打包並壓縮,然後將其複製到Webserver2,然後解壓縮。您甚至可能希望這樣做,以便您擁有遷移前狀態的備份。上述內容避免了將tar文件寫入磁盤的需求 - 相反,它只是直接通過網絡,並且因爲您要複製數據流而不是單個文件,所以它可以更快。我在數據庫遷移項目中使用了這個技巧。任何更清楚? – 2012-04-10 19:29:18

1

rsync -a從一臺服務器到另一臺服務器將保留文件屬性和符號鏈接。

rsync -av [email protected]:/path/to/source [email protected]:/path/to/target 
+0

無法在Webserver 1上使用rsync。 – hozza 2012-04-10 19:17:18

+0

Webserver 1運行的是什麼系統?如果你有完整的訪問web服務器2,我敢打賭,你仍然可以rsync。 – lunixbochs 2012-04-10 20:38:58