Ubuntu

如果我將 /var 從一台機器移動到另一台機器會出現什麼問題?

  • November 17, 2017

我有一個 AWS EC2 實例(我們稱之為 Eye1),它有一個 500GB EBS 作為安裝在/var.

現在我想將我的環境遷移到不同的 EC2 實例(讓我們呼叫 Eye2)。新實例由其他團隊成員通過安裝 python2.7、tensorflow、opencv 和 ML 和 CV alpong 所需的其他庫與 apache2、mysql、php 進行初始化。

現在我需要分離 EBS(其中包含Eye1/var的內容)以將其重新連接到新的 EC2 並將其安裝在/var或 Eye2 上。

Eye2的原始/var內容會發生什麼,如果我將其替換為 Eye1的內容會出現什麼問題/var

注意:我知道 Eye1 上託管的文件、網站和應用程序/var/www/html將取代 Eye2 上的文件、網站和應用程序。這就是我作為 Eye2 的網路根的意圖是空的。

我的問題是,這一舉措是否會損害任何作業系統級別的配置並弄亂 LAMP 和 Python + 其依賴項。

我可以接受系統日誌被替換,因為 Eye2 幾乎是全新的並且沒有執行任何活動。它是重新生成的,然後安裝了 LAMP + Python + 其依賴項。

不是全部,因為這很容易破壞事情。有很多目錄是絕對不應該在系統之間複製或共享的,包括(這不是一個詳盡的列表):

  • 幾乎所有以下內容/var/lib:除其他外,這包括大多數發行版系統上已安裝軟體包的數據庫(將其複製到另一個系統會破壞該系統,嚴重的是,不要這樣做),以及有狀態服務的伺服器狀態(可能如果被複製,則在兩個系統上破壞這些服務,並且可能在您的情況下導致將來出現問題)。
  • /var/db: 幾乎相同的問題/var/lib,只是不太廣泛使用。
  • /var/log/var/account:這些包含特定於它們起源的系統的日誌記錄和記帳數據。複製它們將覆蓋目標系統上的數據。雖然這可能看起來並不重要,但在嘗試解決問題時可能會非常痛苦,因為您不一定知道舊系統中的內容以及新系統中的內容,並且您看不到任何內容在副本之前。
  • /var/spool:這是儲存在本地系統上的各種服務特定數據的臨時儲存。包括本地郵件隊列、本地at批處理隊列、本地列印隊列和其他類似的東西。如果它被複製,就會發生各種令人困惑的事情(出於同樣的原因,它通常也應該從備份中排除)。

此外,可以排除以下目錄,因為複制它們沒有意義(也不是詳盡的列表):

  • /var/cache:這用作記憶體數據的臨時儲存。根據定義,你可以在不破壞任何東西的情況下在這裡使用幾乎任何東西(儘管有些東西可能比你第一次執行它們時花費的時間更長)。
  • /var/tmp: 同理,暫存。
  • /var/run:不再是真正的問題,因為它是/run當今大多數發行版的符號連結,但它曾經是它自己的目錄,用於 PID 文件和套接字。

在您的特定情況下,您應該只複製您實際想要的目錄,而不是所有內容。 /var/www只要您的網站配置正確並且您更新了指向新主機名的連結,複製幾乎總是安全的。特別是,我建議只線上複製數據,然後刪除舊的 EBS 實例(前提是您不需要保留它作為備份)。

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