Rsync(remote sync)是UNIX及類UNIX平臺下一款神奇的數據鏡像備份軟件,它不像FTP或其餘文件傳輸服務那樣須要進行全備份,Rsync能夠根據數據的變化進行差別備份,從而減小數據流量,提升工做效率。你可使用它進行本地數據或遠程數據的複製,Rsync可使用SSH安全隧道進行加密數據傳輸。Rsync服務器端定義源數據,Rsync客戶端僅在源數據發生改變後纔會從服務器上實際複製數據至本地,若是源數據在服務器端被刪除,則客戶端數據也會被刪除,以確保主機之間的數據是同步的。Rsync使用TCP 873端口。web
rsync的安裝很簡單,咱們通常用的centos系統直接yum就能夠安裝:
shell
yum install -y rsync
這裏咱們以2臺服務器來演示,A服務器:192.168.0.1,B服務器:192.168.0.2,B服務器須要同步A服務器的/web目錄,咱們首先操做B服務器:vim
vim /etc/rsync.conf
#日誌位置 log file = /var/log/rsyncd.log #pid文件位置 pidfile = /var/run/rsyncd.pid #lock文件位置 lock file = /var/run/rsync.lock #同步的帳號密碼文件 secrets file = /etc/rsync.pass #同步提示顯示設置文件 motd file = /etc/rsyncd.Motd #同步的自定義模塊名稱 [web] #同步的目錄 path = / comment = web #同步用的uid uid = root #同步用的gid gid = root #rsync監視端口 port=873 use chroot = no read only = no list = no max connections = 2 timeout = 600 #驗證用戶 auth users = web #容許同步的遠端服務器ip hosts allow = 192.168.0.1 #禁止同步的遠端服務器ip hosts deny = *
#設置同步的帳號密碼 echo "tom:pass" > /etc/rsync.pass chmod 600 /etc/rsync.pass
啓動rsync服務:
centos
rsync --daemon
這裏你們要記得看看服務器的防火牆有沒有阻止873端口,阻止的話記得打開不是同步會報錯。
安全
到這裏B服務器的部署已經完成,轉到A服務器上同樣的先須要安裝rsyncbash
yum install -y rsync
創建同步驗證的密碼文件服務器
echo "pass" > /etc/passwd.txt
測試同步效果,注意必定要當心不要同步錯了方向,最好拿一個沒用的目錄來測試,這裏咱們直接測試:ide
rsync -avH --port=873 --progress --delete /web tom@192.168.0.2::web --password-file=/etc/passwd.txt
查看2邊目錄文件是否一致,沒有問題就保存爲shell文件rsync.sh,並作一個crontab每分鐘同步一次:測試
*/1 * * * * /bin/sh /root/rsync.sh >>/var/log/rsync.log 2>&1
到這裏就大功告成了!!ui