rsync是一個開源的快速備份工具,可以在不同主機之間鏡像同步整個目錄樹,支持增量備份,保持鏈接和許可權,且採用優化的同步演算法,傳輸前執行壓縮,因此非常適用於異地備份,鏡像伺服器等應用。 rsync的官方站點是http://rsync.samba.org/,目前最新版本是3.1.1,由Wanyne D ...
rsync是一個開源的快速備份工具,可以在不同主機之間鏡像同步整個目錄樹,支持增量備份,保持鏈接和許可權,且採用優化的同步演算法,傳輸前執行壓縮,因此非常適用於異地備份,鏡像伺服器等應用。
rsync的官方站點是http://rsync.samba.org/,目前最新版本是3.1.1,由Wanyne Davison進行維護。作為一種最常用的文件備份工具,rsync往往是Linux和UNIX系統預設安裝的基本組件之一。
1、rsync:快速增量備份工具,實現遠程同步,可使用ssh和rsync備份
rsync伺服器:備份源,提供一個目錄供客戶端上傳或下載
2、rsync的配置:
建立rsync的配置文件:/etc/rsyncd.conf
use chroot=yes 禁錮在源地址
port 837 預設埠號為873
pid file 進程號文件位置
hosts allow 允許訪問客戶機地址
[wwwroot] 共用名
path=/路徑 真正的文件夾位置
comment= 描述
read only=yes|no 只讀|讀寫
auth users=用戶名 認證的用戶
secrets file=文件名路徑 驗證文件
驗證文件格式: 用戶名:密碼
許可權必須設置為600
3、管理rsync服務:
啟動:rsync --daemon
停止:kill 進程號
4、rsync的使用
格式:rsync 選項 原始位置 目標位置
選項:-a:歸檔模式,等同於 -rlptgoD
-r:遞歸,包含目錄
-p:許可權(保留許可權)
-t:時間
-z:壓縮
-v:同步過程信息
--delete:刪除目標位置有而原始位置沒有的文件
5、備份源(伺服器端)的表達方式:
1)用戶名@伺服器IP::共用名
例:[email protected]::wwwroot
2)rsync://用戶名@伺服器IP/共用名
Rsync -avz [email protected]::wwwroot /root
6、實現免交互模式:
1)創建密碼文件並設置許可權為600
2)同步時使用 --password-file=文件名 的方式指定文件位置
7、實時同步:有變化則備份,無變化不備份
通過inotify機制實現,實時監控本地文件系統目錄的變化,並作出通知響應,適當調整監控文件數量
inotify-tools輔助工具,有兩個命令:
inotifywait:持續監控,實時輸出結果
inotifywatch:短期監控,完成後輸出結果
格式:inotifywait -mrq -e 監控事件類型 /監控目標
-m:持續監控 -r:監控整個目錄
-q:簡化輸出 -e:監控事件類型
類型有:modify(修改) create(創建) move(移動)
delete(刪除) attrib(屬性更改)
以上便是rsync的基本使用方法了,rsync遠程同步實驗案例請關註微信公眾號 L寶寶聊IT 瀏覽“rsync遠程同步示例”文章進行查閱。
rsync遠程同步示例
實驗要求:
(1)如圖所示,搭建網路,配置地址。
(2)在1.10伺服器上配置為服務端,修改rsync的配置文件/etc/rsyncd.conf,並啟動rsync服務程式。
(3)在1.20上使用rsync命令驗證是否能夠從服務端(/var/www/html)下載文件到客戶機端(/myweb)。
(4)修改rsync的配置文件/etc/rsyncd.conf,實現客戶機端(/myweb)能上傳文件到服務端的(/var/www/html)位置。在客戶機端驗證。
(5)在1.20上實現每天晚上22:00對伺服器的網站目錄(/var/www/html)做一次同步。
(6)在1.20上配置rsync+inotify實時同步。通過編寫腳本來實現,客戶機能夠實時上傳文件到服務端。註意:需要安裝inotify軟體。
步驟:
1、 按照要求配置IP地址,實現可以互相ping通。
2、為備份賬戶創建數據文件(vim /etc/rsyncd_users.db)並賦予許可權。
3、修改1.10伺服器端的rsync配置文件/etc/rsyncd.conf,並啟動rsync服務程式。(啟動rsync服務:rsync --daemon)
4、使用1.20客戶機測試能夠從伺服器端下載文件到/myweb
1) 在1.10的/var/www/html目錄下創建一個文件。
2)在1.20客戶機端創建目錄/myweb,並同步下載伺服器端的文件
3) 在客戶機/myweb目錄下查看是否同步,
5、修改rsync的配置文件/etc/rsyncd.conf,實現客戶機端(/myweb)能上傳文件到服務端的(/var/www/html)位置。在客戶機端驗證。
1)進入/etc/rsyncd.conf配置文件並修改。
2)重啟rsync服務,需要先殺死再啟動
keill $(cat /var/run/rsyncd.pid)
rsync --daemon
3)賦予/var/www/html目錄相應的許可權
4) 在客戶機端/myweb目錄下創建一個文件並驗證是否能上傳同步到伺服器端。
5)到伺服器端查看
6、在1.20上實現每天晚上22:00對伺服器的網站目錄(/var/www/html)做一次同步。
1) 創建一個zhangsan用戶的密碼文件/etc/server.pass,並賦予許可權
2)創建計劃任務,crontab -e ,並啟動
00 22 * * * /usr/bin/rsync -az --delete --password-file=/etc/server.pass /myweb/ [email protected]::wwwroot
7、在1.20上配置rsync+inotify實時同步。通過編寫腳本來實現,客戶機能夠實時上傳文件到服務端。
1)配置/etc/sysctl.conf ,調整inotify內核參數
sysctl -p運行一下
3)安裝inotify-tools
4)編寫腳本vim /opt/test.sh
賦予腳本執行許可權並執行
chmod +x /opt/test.sh
5)在打開一個控制台在客戶機端/myweb下創建一個文件併到伺服器端/var/www/html查看是否自動同步
文檔參考微信公眾號:L寶寶聊IT