Rsync使用方法

Rsync是一款開源、快速、多功能、可實現全量及增量的本地或者遠程數據同步的優秀工具。而且支持多系統平臺運行。Rsync具備本地與遠程兩臺主機之間的數據快速複製同步鏡像、遠程備份等功能,該功能相似scp,可是優於scp功能,還具備本地不一樣分區目錄之間全量及增量複製數據。html

scp同步實驗ios

主機A: scp  192.168.2.2:/root/a.txt    .web

 

Rsync命令格式shell

SRC:源文件或者目錄  DEST:目標目錄或者文件vim

本地: rsync [option...] SRC...    [DEST]centos

rsync -aP  /etc/passwd  /tmp/1.txtbash

經過shell遠程訪問:服務器

拉取: rsync [option...] user@host:src...  [dest]架構

推送: rsync  [option...] src...  user@host:desttcp

舉例:  rsync -av  192.168.2.2:/root .

     rsync  -av    /root/a.txt    192.168.2.2:/root

實時同步架構(文件、目錄的實時同步)

rsync+sersync架構功能實現

serync能夠記錄下被監聽目錄中發生變化的(包括增長、刪除、修改)具體某個文件或者某一個目錄的名字,而後使用rsync同步的時候,只同步發生變化的文件或者目錄。

應用場景:數據在兩臺物理服務器上各存儲一份,確保第一份備份失效後,第二份有效。

rsync  --daemon

netstat -antp |grep 873

給密碼文件賦權限:chmod 600 /etc/rsync.passwd 

遠程數據同步rsync -avzP /data/www/  rsync_back@192.168.2.2::www/ --passwordfile=/etc/rsync.passwd

 

 

 

 

使用系統用戶的rsync備份的詳細案例過程:

實驗拓撲 huya23(源主機192.168.1.23)====huya24(目標主機 192.168.1.24)

Rsync服務依賴Xinetd,是使用超級服務來管理的須要在目標機器上安裝rsync服務端

[root@huya24 ~]# yum -y install xinetd rsync

[root@huya24 ~]# rsync --daemon

[root@huya24 ~]# netstat -antup | grep 873

tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      2056/rsync         

tcp6       0      0 :::873                  :::*                    LISTEN      2056/rsync

使用rsync備份數據

對huya23網站根目錄的/var/www/html目錄備份到huya24的/web-back

源服務器:huya23

目標服務器:huya24

創建測試用戶

[root@huya24 ~]# useradd rget1  ;    echo rget1:123456 | chpasswd

[root@huya23 ~]# useradd rget1   ; echo rget1:123456 | chpasswd

 //測試用戶,rget1用於下載

對目錄賦予ACL權限

[root@huya23 ~]# mkdir /var/www/html/ -p

[root@huya23 ~]# setfacl -R -m user:rget1:rwx /var/www/html/                          //設置rget1的權限

[root@huya23~]# setfacl -R -m default:rget1:rwx /var/www/html/

[root@huya23 ~]# getfacl  /var/www/html

user::rwx

user:rget1:rwx

default:user:rget1:rwx

default:group::r-x

default:mask::rwx

default:other::r-x

建立測試數據

[root@huya3 ~]# cp -r /boot/* /var/www/html/                  //boot目錄下的全部數據做爲測試數據

[root@huya24 ~]# mkdir /web-back

[root@huya24 ~]# chown rget1:rget1 -R /web-back/

[root@huya23 ~]# rsync -avz --delete /var/www/html/ rget1@192.168.1.24: /web-back/

 

 

 

 

 

 

使用非系統用戶的rsync備份的詳細案例過程:

使用系統配置文件/etc/rsyncd.conf來備份數據,建立備份帳戶,最後把rsync以deamon方式運行

rsyncd.conf配置文件

配置文件分爲兩部分:全局參數,模塊參數

全局參數:對rsync服務器生效,若是模塊參數和全局參數衝突,衝突的地方模塊參數生效

模塊參數:定義須要經過rsync輸出的目錄定義的參數

用配置文件定義目錄輸出

 [root@huya24 ~]# vim /etc/rsyncd.conf                    //文件不存在,須要本身建立

【centos6.X 系統上是沒有這個文件的,在7系統上,運行來rsync – daemon 就會自動生成這個文件】

uid = root                           #傳輸文件時守護進程應該具備的uid身份,默認爲nobody

gid = root                            #傳輸文件時守護進程應該具備

address =192.168.0.64                       #監聽IP,爲本機ip地址

port =873                               #監聽端口

hosts allow =192.168.0.0/24                        #容許同步客戶端的IP地址,能夠是網段,或者用*表示全部 192.168.1.0/24或192.168.1.0/255.255.255.0

use chroot = yes                               #是否囚牢,鎖定家目錄,rsync被黑以後,黑客沒法再rsync運行的家目錄以外建立文件,選項設置爲yes

max connections =5                             #最大鏈接數

pid file =/var/run/rsyncd.pid          #進程PID,自動生成

lock file =/var/run/rsync.lock         #指max connectios參數的鎖文件

log file =/var/log/rsyncd.log          #日誌文件位置

motd file =/etc/rsyncd.motd    #客戶端登錄以後彈出的消息,須要建立

 

[wwwroot]                              #共享模塊名稱

path =/web-back/                      #指定該模塊的供備份的目錄樹路徑

comment = used for web-data root    #描述信息

read only = false                                 #設置服務端文件讀寫權限

list = yes                                         #是否容許查看模塊信息,該選項設定當客戶請求可使用的模塊列表時,該模塊是否應該被列出

auth users = rsyncuser                        #備份的用戶,和系統用戶無關

secrets file =/etc/rsync.passwd        #存放用戶的密碼文件,格式是  用戶名:密碼

 

 

uid = root                         

gid = root                         

address =192.168.1.24                 

port =873                              

hosts allow =192.168.1.0/24                  

use chroot = yes        

max connections =5                       

pid file =/var/run/rsyncd.pid      

lock file =/var/run/rsync.lock      

log file =/var/log/rsyncd.log 

motd file =/etc/rsyncd.motd

[wwwroot]                            

path =/web-back/                     

comment = used for web-data root   

read only = false                   

list = yes                                    

auth users = rsyncuser                      

secrets file = /etc/rsync.passwd

 

建立提示文件和用戶密碼

[root@huya24 ~]# echo "Welcome to Backup Server" > /etc/rsyncd.motd

[root@huya24 ~]# vim /etc/rsync.passwd

rsyncuser:password123

[root@huya24 ~]# chmod 600 /etc/rsync.passwd                 //目錄權限必須是700或者600,不然的話身份驗證會失效,設置rsync user的時候

啓動服務測試

     啓動rsync與xinetd服務

systemctl start xinetd  #啓動xinetd服務

systemctl enable xinetd  #將xinetd服務加入開機項

rsync --daemon --config=/etc/rsyncd.conf  #加載配置文件rsyncd.conf啓動rsync服務

[root@huya24 ~]# ps aux|grep rsync

root      2056  0.0  0.0 114652   316 ?        Ss   20:53   0:00 rsync --daemon

[root@huya24 ~]# kilall  rsync

[root@huya24 ~]#  rsync --daemon --config=/etc/rsyncd.conf

[root@huya24 ~]# ps aux|grep rsync

root      2155  0.0  0.0 114652   520 ?        Ss   21:33   0:00 rsync --daemon --config=/etc/rsyncd.conf

root      2157  0.0  0.0 112660   972 pts/0    S+   21:33   0:00 grep --color=auto rsync

[root@huya24  ~]# netstat -antup | grep :873

tcp        0      0:::873                      :::*                        LISTEN      45089/xinetd       

 

測試,rsync語法:   rsync 選項 用戶名@目標服務器IP::共享模塊名 

[root@huya23 ~]# rsync -avz --delete  /var/www/html/ rsyncuser@192.168.1.24::wwwroot

Welcome to Backup Server

Password:       #輸入密碼password123

 

密碼處理

新建一個文件保存好密碼,而後在rsync命令中使用--password-file指定此文件便可

[root@huya23 ~]# vim /etc/rsync.passwd 

password123

[root@huya23 ~]# chmod 600  /etc/rsync.passwd 

[root@huya23 ~]#rsync -avz --delete  /var/www/html rsyncuser@192.168.0.64::wwwroot --password-file=/etc/rsync.passwd 

 

腳本實現定時自動備份

[root@huya23 ~]# vim autobackup.sh

#!/bin/bash

rsync -avz --delete  /var/www/html rsyncuser@192.168.0.64::wwwroot --password-file=/opt/passfile

[root@huya23 ~]# chmod +x autobackup.sh

[root@huya24 ~]# rm –rf  /web-back/*                       //測試腳本

[root@huya23~]# sh autobackup.sh

[root@huya24 ~]# echo "01 3 * * *  sh /root/autoback.sh &" >> /var/spool/cron/root

相關文章
相關標籤/搜索