配置環境:redhat 6.3
server A設置:
1. yum安裝rsync-3.0.6-9.el6.i686。
#yum install -y rsync
2.建立rsync 同步目錄/tmp/backup,此目錄裏面的內容將同步到遠程備份服務器B上。
#mkdir /tmp/backup
3.建立密碼文件,此文件用於存放rsync同步時使用的賬號密碼,格式爲「用戶名:密碼」,該用戶是與操做系統分離的,系統上不須要建立此用戶。rsync的密碼文件可以使用任意名稱。
#vim /etc/rsyncd.pass
laya:123456
密碼文件權限需修改成600,
#chmod 600 /etc/rsyncd.pass
#ll /etc/rsyncd.pass
-rw------- 1 root root 9 Apr 16 11:07 /etc/rsyncd.pass
4.建立rsync配置文件/etc/rsyncd.conf,默認是沒有這個文件的,須要手工建立。rsync的配置文件使用模塊化結構,包含全局參數和模塊參數,全局參數是通用的配置。每一個模塊表明着一個目錄樹的同步,模塊定義從[]中的模塊名開始,到下一個模塊定義開始。
rsync.conf配置以下:
----------------------------------------------------------------------------------------
uid=root #該選項指定當該模塊傳輸文件時守護進程應該具備的uid,默認值是「nobody」。
gid=root #該選項指定當該模塊傳輸文件時守護進程應該具備的gid,默認值是「nobody」。
use chroot=no #不使用chroot。
max connections=4 #設置最大鏈接數,默認爲0,即無限制。這裏設置爲4。
strict mode =yes #設置是否檢查口令文件的權限。
pid file=/var/run/rsyncd.pid #指定rysnc進程的pid文件位置 。
lock file=/var/lock/rsync.lock #指定支持max connections的鎖文件。
log file=/var/log/rsyncd.log #指定 rsync日誌輸出路徑。
[test] #模塊名,可以使用任意名稱。
path=/tmp/backup #源目錄路徑。
comment=test rsync #模塊描述。
ignore errors #出現I/O錯誤時可忽略。
read only=no #是否只讀,設置爲no時客戶端可上傳文件。
write only=no #設置爲no 時客戶端可下載文件。
hosts allow=192.168.1.62 #容許訪問的主機。
hosts deny=* #拒絕訪問的主機,*表示全部主機。
list=false #設置客戶端請求時是否列出該模塊,false爲隱藏。
auth users=laya #設置鏈接時使用的用戶,即密碼文件裏面定義的用戶名。
secrets file=/etc/rsyncd.pass #指定存放密碼文件的位置 。
----------------------------------------------------------------------------------------
5.啓動rsync守護進程
#/usr/local/bin/rsync --daemon
rsync的默認端口爲873,經過命令netstat –lnpt能夠查看是否已正常啓動。
vim
#netstat -lnpt
tcp 0 0 :::873 :::* LISTEN 2158/rs
----------------------------------------------------------------------------------------
client B 配置
1. 安裝rsync。
#yum install -y rsync
2. 配置密碼文件,裏面寫入與服務器A上相同的密碼,但不須要再寫賬號名。
#vim /etc/rsyncd.pass
123456
3. 建立備份的文件夾
mkdir /backup
4. 同步操做,使用以下命令從服務器A下載文件。
#/usr/local/bin/rsync -vzrtopgu --delete --progress --exclude 「*.log」 laya@192.168.1.37::test /backup --password-file=/etc/rsyncd.pass
該命令的解釋以下:
-v 即--verbose #顯示傳輸的詳細信息。
-z 即--compress #傳輸時對文件進行壓縮。
-r 即--recursive #對子目錄進行遞歸處理。
-t 即--times #保持文件的時間信息。
-o 即--owner #用來保持文件的屬主信息。
-p 即--perms #保持文件權限。
-g 即--group #保持文件屬組信息。
--delete #以rsync服務器爲基準保持數據同步,若是服務器刪除了某一文件,客戶端也會刪掉。
--progress #顯示出詳細的進度狀況。
--exclude #用於排除不須要的文件類型。
laya@192.168.1.37::test #指定備份的服務器和相關的模塊,laya爲服務器A上面設置的
rsync同步賬號,注意服務器IP與模塊名之間爲雙冒號「::」。
/backup #指定備份的文件在客戶端B上的存放位置 。
--password-file=/etc/rsyncd.pass #指定客戶端存放密碼文件的位置。
如今,咱們能夠查看備份目錄/backup,看到已經與A服務器上的/tmp/backup完成了同步,同時排除了咱們不想要同步的文件。
5.若是咱們須要定時同步,如三小時同步一次,只需把該命令加到計劃任務便可。
* 3 * * * /usr/local/bin/rsync -vzrtopgu --delete --progress --exclude 「*.log」 laya@192.168.1.37::test /backup --password-file=/etc/rsyncd.pass
至此,rsync的同步設置完成。
服務器