Rsync同步工具
rsync配置文件:/etc/rsyncd.conf ###安裝rsync後系統默認不存在rsyncd.conf 需要自己創建。
[[email protected] ~]# cat /etc/rsyncd.conf
##rsyncd.conf start##
uid = rsync
gid = rsync
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
[zhuzhiwei] ###項目名稱,可以隨意定義。
path = /data1/ ###共享的目錄
ignore errors
read only = false
list = false
hosts allow = 192.168.2.0/24 ###允許訪問的IP地址
hosts deny = 0.0.0.0/32 ###拒絕訪問的IP地址
auth users = zzw ###rsync用戶的別名,可隨意定義。
secrets file = /etc/rsync.password ###rsync密碼文件。
[[email protected] ~]# cat /etc/rsync.password ###rsync密碼文件。
zzw:[email protected]
[[email protected] ~]# chmod 600 /etc/rsync.password ###安全起見密碼用戶的權限設置為600
[[email protected] ~]# ll /etc/rsync.password
-rw------- 1 root root 8 Jun 10 15:21 /etc/rsync.password
例子:zhu-centos6 作為備份服務器,Centos6-Vm-A-247作為客戶端。
[[email protected] ~]# useradd rsync -s /sbin/nologin ##首先創建rsync用戶,禁止用戶登錄。
[[email protected] ~]# mkdir /data1 ###創建要共享的目錄,共享的目錄名稱要和rsyncd.conf配置文件裏面的共享目錄相同
[[email protected] ~]# chown -R rsync.rsync /data1 ###指定共享目錄的權限,屬主和屬組都是rsync。
[[email protected] ~]# ls -l | grep data1 ###查看共享目錄的權限信息。
drwxr-xr-x 2 rsync rsync 4096 Jun 10 15:28 data1
[[email protected] ~]# rsync daemon ###啟動rsync進程
[[email protected] ~]# ps -ef | grep -v grep | grep rsync ###查看rsync進程是否啟動
root 1596 1 0 Jun05 ? 00:00:00 rsync --daemon
##########到此服務器端配置完成#####接下來配置客戶端
[[email protected] ~]# cat /etc/rsync.password ##首先創建密碼文件,密碼文件內容要和服務器端密碼文件裏面的密碼一致。
[email protected]
[[email protected] ~]# chmod 600 /etc/rsync.password ###安全起見密碼用戶的權限設置為600
[[email protected] ~]# ll /etc/rsync.password
-rw------- 1 root root 8 Jun 10 15:21 /etc/rsync.password
[[email protected] aaa]# pwd ###檢查要同步的目錄路徑
/aaa
[[email protected] aaa]# ls
1 10 2 3 4 5 6 7 8 9
[[email protected] aaa]# rsync -avz /aaa/ [email protected]::zhuzhiwei --password-file=/etc/rsync.password ###向備份服務器端發送文件
sending incremental file list
./
1
10
2
3
4
5
6
7
8
9
sent 450 bytes received 201 bytes 1302.00 bytes/sec
total size is 0 speedup is 0.00
———————————————————————————
PS:同步時用到的命令含義。
-avz #rsync同步時所帶的選項。
/aaa/ #將“aaa”目錄裏面的所有文件上傳到備份服務器的共享目錄裏面。
[email protected] ###zzw為rsync的虛擬賬戶,192.168.2.185為備份服務器的IP。
::zhuzhiwei ##服務器端的項目名稱
--password-file=/etc/rsync.password ##rsync虛擬用戶的密碼文件,如不使用此選項,需在同步文件時輸入一次rsync虛擬賬戶的密碼。
——————————————————————————————
[[email protected] ~]# rsync -avz [email protected]::zhuzhiwei /data1/ --password-file=/etc/rsync.password ##從備份服務器端獲取文件,/data1/是從服務器端獲取的文件放到本地的data1目錄下
receiving incremental file list
./
1
10
2
3
4
5
6
7
8
9
sent 251 bytes received 537 bytes 1576.00 bytes/sec
total size is 0 speedup is 0.00
[[email protected] ~]# ls /data1
1 10 2 3 4 5 6 7 8 9
————————————————————————————
————————————————————————————
從客戶端向服務端發送文件時排除文件
[[email protected] aaa]# rsync -avz --exclude=123 /aaa/ [email protected]::zhuzhiwei --password-file=/etc/rsync.password #發送過程中排出單個文件
[[email protected] aaa]# rsync -avz --exclude={123,456} /aaa/ [email protected]::zhuzhiwei --password-file=/etc/rsync.password #發送過程中排出多個文件文件中間用逗號隔開。
如果想要排除更多的文件,可以寫一個.log的文件,把需要排除的文件名添加到.log文件中,如下:
排除的文件名
[[email protected] ~]# rsync -avz --exclude-from=/tmp/paichu.log /aaa/ [email protected]::zhuzhiwei --password-file=/etc/rsync.password
服務端接收和發送時排除文件(此方法不太靈活,不推薦使用)
需要在rsyncd.conf 的配置文件的項目裏面添加一個排除規則,如下圖:
註意:排除時也可以指定文件的全路徑
需重啟rsync服務,
-----------------------------------
無差異同步
[[email protected] data1]#rsync -avz --delete /data1/ [email protected]::zhuzhiwei --password-file=/etc/rsync.password ###向服務器端推送數據,客戶端服務器有什麽備份服務器就有什麽。
[[email protected] data1]#rsync -avz --delete [email protected]::zhuzhiwei /data1/ --password-file=/etc/rsync.password ###從備份服務器端拉數據,備份服務器端有什麽,客服端服務器就有什麽。
切記無差異同步數據時危險性大,一定要註意文件的路徑,否則會造成文件的丟失。
本文出自 “Zack” 博客,請務必保留此出處http://zhuzhiwei.blog.51cto.com/8446194/1947826
Rsync同步工具