使用Rsync同步備份兩個web服務器文件
VSole2022-03-25 07:13:10
同步Web服務器的優勢
使用rsync創建Web服務器備份的主要優點如下:
- Rsync僅同步那些已更改的字節和數據塊。
- Rsync能夠檢查和刪除備份服務器上已從主Web服務器中刪除的那些文件和目錄。
- 它在遠程復制數據時處理權限、所有權和特殊屬性。
- 它還支持SSH協議以加密方式傳輸數據,讓你放心所有數據都是安全的。
- Rsync在傳輸數據時使用壓縮和解壓縮方法,消耗更少的帶寬。
如何同步兩個Web服務器
設置rsync以創建Web服務器的鏡像。我將使用兩臺服務器。
主服務器
IP Address: 192.168.1.111Hostname: webserver.rumenz.com
備份服務器
IP Address: 192.168.1.112Hostname:backup.rumenz.com
第 1 步:安裝Rsync工具
[root@rumenz]# yum install rsync [On Red Hat based systems] [root@rumenz]# apt-get install rsync [On Debian based systems]
第 2 步:創建一個用戶來運行Rsync
我們可以設置 rsyncroot用戶,但出于安全原因,你可以在主網絡服務器上創建一個非特權用戶,即webserver.rumenz.com運行 rsync。
[root@rumenz]# useradd rumenz [root@rumenz]# passwd rumenz
在這里我創建了一個用戶 rumenz 并為用戶分配了密碼。第 3 步:測試 Rsync 設置
測試 rsync 設置了(backup.rumenz.com) 并要執行此操作,請鍵入以下命令。[root@backup www]# rsync -avzhe ssh rumenz@webserver.rumenz.com:/var/www/ /var/www
輸出
rumenz@webserver.rumenz.com's password: receiving incremental file list sent 128 bytes received 32.67K bytes 5.96K bytes/sec total size is 12.78M speedup is 389.70
你可以看到你的 rsync 現在工作正常并且正在同步數據。我用過了 /var/www 轉移;你可以根據需要更改文件夾位置。第 4 步:使用SSH無密碼登錄自動同步
已經完成了 rsync 設置,現在是時候設置一個cron對于 rsync。因為我們將使用rsync與SSH協議,ssh 將要求進行身份驗證. 為了讓cron順利工作,我們需要設置passwordless ssh logins對于 rsync。
在這個例子中,我這樣做root保存file ownerships同樣,你也可以為其他用戶執行此操作。
首先,我們將生成一個public和private在備份服務器上使用以下命令鍵(即backup.rumenz.com)。
[root@backup]# ssh-keygen -t rsa -b 2048
輸入此命令時,請不要提供密碼,然后按回車鍵Empty passphrase這樣 rsync cron 就不需要任何密碼來同步數據。樣本輸出
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 9a:33:a9:5d:f4:e1:41:26:57:d0:9a:68:5b:37:9c:23 root@backup.exmple.com The key's randomart image is: +--[ RSA 2048]----+ | .o. | | .. | | ..++ . | | o=E * | | .Sooo o | | =.o o | | * . o | | o + | | . . | +-----------------+
我們的Public和Private密鑰已生成,我們必須與主服務器共享它,以便主 Web 服務器能夠識別此備份機器,并允許它在同步數據時無需輸入任何密碼即可登錄。
[root@backup html]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@webserver.rumenz.com
現在嘗試登錄服務器,使用ssh root@webserver.rumenz.com,然后簽入.ssh/authorized_keys.
[root@backup html]# root@webserver.rumenz.com
現在,我們完成了共享密鑰。要更深入地了解SSH password less login第5步:設置Cron以自動同步
我們為此設置一個 cron。要設置 cron,請使用以下命令打開 crontab 文件。
[root@backup ~]# crontab –e
它將打開 /etc/crontab 文件以使用你的默認編輯器進行編輯。在此示例中,我正在編寫一個 cron,每5分鐘運行一次以同步數據。
*/5 * * * * rsync -avzhe ssh root@webserver.rumenz.com:/var/www/ /var/www/
上面的 cron 和 rsync 命令只是同步/var/www/從主要web server到backup server在每一個5 minutes.你可以根據需要更改時間和文件夾位置配置。
VSole
網絡安全專家