將程式碼從一台伺服器傳輸到另一台伺服器

將程式碼從一台伺服器傳輸到另一台伺服器

我想將新程式碼傳輸到我的新生產伺服器。

我的開發伺服器上有程式碼檔案。

除了使用 FTP 從本機電腦上傳檔案之外,還有其他方法可以將程式碼從一台伺服器傳輸到另一台伺服器。

我的想法是製作整個程式碼的 zip 檔案進行傳輸並將其放置在 webroot 中。這樣就可以透過一些連結在網路上存取它http://www.mydomain.com/code.tar.gz 現在在另一台伺服器上我將執行命令

wget http://www.mydomain.com/code.tar.gz 

轉移會在幾秒鐘內完成嗎...?我可以知道這是正確的方法嗎?

答案1

首先要注意的是 FTP 不是一個好主意。你絕對應該使用 SCP。

接下來的事情是,在建立文件的地方,您需要使用正確的權限來執行此操作。最簡單的方法是使用 root 使用者(然後您可以以您喜歡的任何使用者身分建立檔案)。但您確實不想允許 root scp/ftp 存取。這意味著您將文件拉到伺服器上 - 而不是推送它們。

我建議在您的開發系統上建立一個版本(以便您可以檢查它是否已正確部署),然後使用 rsync 將映像複製到伺服器上。

您可以使用 scp 來移動備份映像 - 但您可能需要 root 才能正確解壓縮它。然而,如果您遇到問題,那麼您唯一的辦法就是再次重複整個過程 - rsync 僅複製已更改的檔案。

答案2

真正要做的最好的事情是使用 ANT 或建置腳本從 CVS/SVN/GIT/任何東西匯出,並帶有特定的標籤,這樣下次升級程式碼時,如果出現問題,您可以隨時返回原始程式碼庫。

如果失敗,請在乾淨的開發環境中使用 rsync。確保程式碼由相同使用者擁有並以相同使用者身分執行,然後執行以下操作:

ssh devserver cd /path/to/webroot rsync -e ssh -avzP * prodserver:/path/to/webroot/

答案3

作為新生產伺服器中的首次乾淨部署,如果您具有 ssh 存取權限,請使用 RSYNC 或 SCP。看一下這個:使用 Rsync 和 SSH

正如 Glen 所說,最好的部署計劃是使用 ANT 或建立自己的腳本來匯出程式碼,如果在部署過程中出現任何問題,可以回滾。

相關內容