rsync守護進程模式部署

#首先,關閉防火牆和selinux
[root@ c7-41 ~] systemctl stop firewalld
[root@ c7-41 ~] setenforce 0

1,在主機A 服務端上查看是否安裝rsync服務

[root@ c7-41 ~] rpm -qa rsync #centos7.7 自帶rsync服務
rsync-3.1.2-6.el7_6.1.x86_64

[root@ c7-41 ~] yum -y install rsync #沒有則yum安裝即可

2,修改服務端配置文件

[root@ c7-41 ~] vim /etc/rsyncd.conf
[root@ c7-41 ~] cat /etc/rsyncd.conf #注意:配置文件中,行後不要有註釋和空格。
##全局配置			
uid = root    #用戶			
gid = root    #用戶組			
use chroot = no    #安全相關			
max connections = 200    #最大鏈接數			
timeout = 300    #超時時間			
pid file = /var/run/rsyncd.pid    #進程對應的進程號文件			
lock file = /var/run/rsync.lock    #鎖文件			
log file = /var/log/rsyncd.log    #日誌文件,顯示出錯信息
##模塊配置			
[backup]            #模塊名稱			
path = /data      #模塊對應的位置(路徑)			
ignore errors       #忽略錯誤程序			
read only = false    #是否只讀			
list = false        #是否可以列表			
hosts allow = 10.0.0.0/24  #准許訪問rsync服務器的客戶範圍			
#hosts deny = 0.0.0.0/32      #禁止訪問rsync服務器的客戶範圍			
auth users = rsync_backup    #不存在的用戶;只用於認證			
secrets file = /etc/rsync.password  #設置進行連接認證的密匙文件

3、創建rsync備份目錄/授權rsync用戶管理備份目錄,修改備份目錄權限

[root@ c7-41 ~] mkdir -p /data
[root@ c7-41 ~] useradd rsync -s /sbin/nologin -M #創建一個rsync的虛擬用戶,只被程序使用
[root@ c7-41 ~] chown -R rsync.rsync /data/

4、創建認證用戶密碼文件,修改文件權限

[root@ c7-41 ~] echo "rsync_backup:123456" >/etc/rsync.password
[root@ c7-41 ~] chmod 600 /etc/rsync.password

5、重啓rsync守護進程服務,並查看是否啓動

[root@ c7-41 ~] systemctl enable rsyncd.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.

[root@ c7-41 ~] systemctl restart rsyncd.service 
[root@ c7-41 ~] ps -ef|grep rsync
root       3109      1  0 14:35 ?        00:00:00 /usr/bin/rsync --daemon --no-detach
root       3117   2851  0 14:37 pts/0    00:00:00 grep --color=auto rsync
#啓動文件
[root@ c7-41 ~] cat /usr/lib/systemd/system/rsyncd.service
[Unit]
Description=fast remote file copy program daemon
  nditionPathExists=/etc/rsyncd.conf

[Service]
EnvironmentFile=/etc/sysconfig/rsyncd
ExecStart=/usr/bin/rsync --daemon --no-detach "$OPTIONS"

[Install]
WantedBy=multi-user.target

6,在主機B 客戶端上部署
創建密碼文件,客戶端密碼文件中,只需要密碼即可,密碼文件的權限是600

[root@ c7-42 ~] echo "123456">/etc/rsync.password
[root@ c7-42 ~] chmod 600 /etc/rsync.password

7,在客戶端測試推送文件

#在主機B 客戶端上創建文件aaa.txt
[root@ c7-42 ~] echo "what are you doing?" >>aaa.txt
[root@ c7-42 ~] rsync -avz aaa.txt [email protected]::backup --password-file=/etc/rsync.password
sending incremental file list
aaa.txt

sent 103 bytes  received 43 bytes  292.00 bytes/sec
total size is 12  speedup is 0.08

在主機A服務端上查看是否推送成功

[root@ c7-41 ~] ls /data/
aaa.txt

8,客戶端在服務端拉取文件

#注意:rsync默認使用873端口,防火牆開啓時,需放行端口
[root@ c7-42 ~] rsync -avz [email protected]::backup --password-file=/etc/rsync.password /tmp
receiving incremental file list
./
aaa.txt

sent 50 bytes  received 150 bytes  133.33 bytes/sec
total size is 12  speedup is 0.06

在客戶端查看

[root@ c7-42 ~] ls /tmp/
aaa.txt #拉取的文件
ks-script-__iz55
vmware-root_912-2697663791
vmware-root_926-2731217702
vmware-root_940-2689209484
vmware-root_972-2957124820
vmware-root_984-2999526209
yum.log

rsync介紹

rsync英文稱爲remote synchronizetion,從軟件的名稱就可以看出來,rsync具有可使本地和遠程兩臺主機之間的數據快速複製同步鏡像、遠程備份的功能,這個功能類似於ssh帶的scp命令,但是又優於scp命令的功能,scp每次都是全量拷貝,而rsync可以增量拷貝。
當然,rsync還可以在本地主機的不同分區或目錄之間全量及增量的複製數據,這又類似cp命令。但是同樣也優於cp命令,cp每次都是全量拷貝,而rsync可以增量拷貝。

在同步數據的時候,默認情況下,rsync通過其獨特的“quick check”算法,它僅同步大小或者最後修改時間發生變化的文件或目錄,當然也可根據權限、屬主等屬性的變化同步,但是需要制定相應的參數,甚至可以實現只同步一個文件裏有變化的內容部分,所以,可是實現快速的同步備份數據。

rsync - 快速,通用,可實現全量和增量的遠程(和本地)文件複製工具。

rsync監聽端口:873

rsync運行模式:C/S

client/server :客戶端/服務端

rsync優缺點

優點:
1)可以增量備份,支持socket(daemon),集中備份(支持推拉,都是以客戶端爲參照物);socket(daemon)需要加密傳輸,可以利用vpn服務或ipsec服務。

2)可以限速進行數據的備份或恢復操作。

3)遠程SHELL通道模式還可以加密(SSH)傳輸

4)支持匿名認證(無需系統用戶)的進程模式傳輸,可以實現方便安全的進行數據備份和鏡像

5)保持原文件或目錄的權限、時間、軟硬鏈接、屬主、組等所有屬性均不改變 –p

6)可以有排除指定文件或目錄同步的功能,相當於打包命令tar的排除功能。(–exclude)

缺點:
1)大量小文件時進行同步備份,比對的時間較長,有時候會導致rsync進程停止運行或者進程掛起; 解決方法: a、打包後再同步; b、drbd(文件系統同步複製block)。

2)同步大文件,比如:10G這樣的,有時也會出現問題,導致rsync進程中斷,未完整同步前,是隱藏文件,但是會佔用磁盤空間(ls -al查看)。直到同步完成後,將隱藏文件改成正常文件。而且,每中斷一次,生成一個隱藏文件。

rsync三種工作模式

分別是:本地方式,遠程方式,守護進程。
參數詳解

rsync參數 說明

-v, 		--verbose	詳細模式輸出
-a, 		--archive	歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rlptgoD
-z, 		--compress	對備份的文件在傳輸時進行壓縮處理
-P						顯示進度
-r,			--recursive	對子目錄以遞歸模式處理
-l, 		--links		保留軟鏈結
-p, 		--perms		保持文件權限
-o, 		--owner		保持文件屬主信息
-g, 		--group		保持文件屬組信息
-D, 		--devices	保持設備文件信息
-t, 		--times		保持文件時間信息
-e, 		--rsh=command 指定使用rsh、ssh方式進行數據同步
-S, 		--sparse	對稀疏文件進行特殊處理以節省DST的空間
-n, 		--dry-run	現實哪些文件將被傳輸
-w, 		--whole-file 拷貝文件,不進行增量檢測
-B, 		--block-size=SIZE	檢驗算法使用的塊尺寸,默認是700字節。
-x, 		--one-file-system	不要跨越文件系統邊界
-R, -		-relative	使用相對路徑信息
-b, 		--backup	創建備份,也就是對於目的已經存在有同樣的文件名時,將老的文件重新命名爲~filename。可以使用--suffix選項來指定不同的備份文件前綴。
-u, 		--update	僅僅進行更新,也就是跳過所有已經存在於DST,並且文件時間晚於要備份的文件,不覆蓋更新的文件
-q, 		--quiet		精簡輸出模式
-c, 		--checksum	打開校驗開關,強制對文件傳輸進行校驗
--exclude=PATTERN		指定排除不需要傳輸的文件模式
--exclude-from=FILE		排除FILE中指定模式的文件
--bwlimit=KBPS			限制I/O帶寬,KBytes per second
--delete				刪除那些DST中SRC沒有的文件
--password-file=FILE	從FILE中得到密碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章