2012年11月30日

自動化同步遠端檔案至伺服器資料夾,使用 rsync 及 ssh


將本地檔案(如網站、備份檔或文件等)同步至遠端,使用 UNIX 的 rsync 及 ssh 就可以達到快速兼顧安全的自動化機制。這個步驟剛開始需要花一點時間建置,就可以省下日後許多麻煩與時間。

遠端伺服器以 Ubuntu Linux Server 為例,本地端可以是 Ubuntu Desktop 或 Mac OS X 機器。

安裝 SSH 服務(遠端伺服器)

SSH 服務是一般 Linux Server 必備的服務,相關安裝說明已經非常多,本文就不再贅述。

設定 SSH 免密碼登入

將本地端的 SSH Public Key 檔案「~/.ssh/id_rsa.pub」內容複製。

使用 ssh 連線到遠端,順便測試 SSH 服務。

ssh user@server

使用密碼登入遠端伺服器,編輯或新建立「~/.ssh/authorized_keys」檔案。將本地端的 id_rsa.pub 內容加入 authorized_keys。

儲存後先登出,再重新以 ssh 登入,如果不必輸入密碼,則表示免密碼機制已正常運作。

測試 SFTP 檔案傳輸

SSH 內建 SFTP 檔案傳輸功能,一般預設已開啟。

sftp user@server

免密碼登入後即可用用 FTP 指令存取遠端檔案。

另一個簡化 FTP 操作的增強工具是 lftp 軟體;Mac OS X 需要先以 MacPorts 安裝 lftp (sudo port install lftp)。

以 lftp 工具連線至遠端 SFTP。

lftp sftp://user@server

使用 RSYNC + SSH 備份檔案至遠端

例:將「something」資料夾備份到遠端「backup」資料夾下。

rsync -avlR --delete -e ssh /home/user/something user@server:/home/user/backup

設定自動化機制

搭配 crontab 可以設定在指定時間自動同步檔案(請參考鳥哥 crontab 教學)。

搭配 Makefile 可以讓專案建置後,自動佈署到遠端伺服器。

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!