1.1 什麼是rsync?
rsync是Unix下的一款應用軟件,它能同步更新兩處計算機的文件與目錄,並適當利用差分編碼以減少數據傳輸。rsync中一項與其他大部分類似程序或協議中所未見的重要特性是鏡像對每個目標只需要一次傳送。rsync可拷貝/顯示目錄屬性,以及拷貝文件,並可選擇性的壓縮以及遞歸拷貝。
在常駐模式(daemon mode)下,rsync默認監聽TCP端口873,以原生rsync傳輸協議或者通過遠程shell如RSH或者SSH伺服文件。SSH情況下,rsync客戶端運行程序必須同時在本地和遠程機器上安裝。
2.1 rsync的安裝
每個鏡像服務器(需要同步的服務器)都需要安裝rsync守護進程。
一般發行版都帶有rsync,因此我這裏直接使用yum安裝。當然在很多發行版上默認已經安裝了rsync。
[root@master ~]#rpm -qa | grep rsync #確認是否已經安裝rsync rsync-3.0.6-4.el5_7.1 [root@master ~]#rpm -ql rsync /etc/xinetd.d/rsync /usr/bin/rsync /usr/share/doc/rsync-3.0.6 /usr/share/doc/rsync-3.0.6/COPYING /usr/share/doc/rsync-3.0.6/NEWS /usr/share/doc/rsync-3.0.6/OLDNEWS /usr/share/doc/rsync-3.0.6/README /usr/share/doc/rsync-3.0.6/support /usr/share/doc/rsync-3.0.6/support/Makefile /usr/share/doc/rsync-3.0.6/support/atomic-rsync /usr/share/doc/rsync-3.0.6/support/cvs2includes /usr/share/doc/rsync-3.0.6/support/deny-rsync /usr/share/doc/rsync-3.0.6/support/file-attr-restore /usr/share/doc/rsync-3.0.6/support/files-to-excludes /usr/share/doc/rsync-3.0.6/support/git-set-file-times /usr/share/doc/rsync-3.0.6/support/logfilter /usr/share/doc/rsync-3.0.6/support/lsh /usr/share/doc/rsync-3.0.6/support/mnt-excl /usr/share/doc/rsync-3.0.6/support/munge-symlinks /usr/share/doc/rsync-3.0.6/support/rrsync /usr/share/doc/rsync-3.0.6/support/rsyncstats /usr/share/doc/rsync-3.0.6/support/savetransfer.c /usr/share/doc/rsync-3.0.6/tech_report.tex /usr/share/man/man1/rsync.1.gz /usr/share/man/man5/rsyncd.conf.5.gz [root@master ~]#yum install rsync #如果你電腦沒有安裝,可以使用YUM直接安裝。 |
rsync是由超級守護進程xinetd來啓動的。因此需要啓動xinetd服務。
2.2 配置rsync服務器
rsync服務器主要有三個配置文件:rsyncd.conf,rsyncd.secrets和rsyncd.motd,而rsync安裝後並沒有自動創建相關配置文件,因此我們還需手動創建:
[root@master ~]# mkdir /etc/rsyncd #創建配置目錄 [root@master ~]# touch /etc/rsyncd/rsyncd.conf #創建主配置文件 [root@master ~]# touch /etc/rsyncd/rsyncd.secrets #創建用戶密碼文件 [root@master ~]# chmod 600 /etc/rsyncd/rsyncd.secrets #修改用戶密碼文件權限 [root@master ~]# touch /etc/rsyncd/rsyncd.motd #創建定義服務信息的文件 |
編輯主配置文件:
[root@master ~]#vim /etc/rsyncd/rsyncd.conf |
編輯/etc/rsyncd/rsyncd.secrets文件:
#Account and password apache:password123 注意:這裏賬號雖然用的是系統賬號,但是密碼是自定義的密碼。也可以用非系統用戶! |
啓動使rsync生效:
[root@master ~]#/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf |
設置爲開機啓動:
[root@master ~]#echo "/usr/bin/rsync --deamon --config=/etc/rsyncd/rsyncd.conf" >> /etc/rc.d/rc.local |
Tip:這裏的啓動方式比較特殊,如果你要重啓,需要kill掉rsync的進程,再重新運行!
另外還有另外一種啓動rsync的方式,CentOS 默認以 xinetd 方式運行 rsync 服務。rsync 的 xinetd 配置文件在 /etc/xinetd.d/rsync
要配置以 xinetd 運行的 rsync 服務需要執行如下的命令:
# chkconfig rsync on
# vim /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon --config=/etc/rsyncd/rsyncd.conf #這裏添加rsync的服務選項!
log_on_failure += USERID
}
# service xinetd restart
2.3 使用rsync客戶端實現數據同步
客戶端安裝同上,額外只需配置一個密碼文件,具體如下:
[root@client01 ~]# mkdir /etc/rsyncd [root@client01 ~]# echo "password123" > /etc/rsyncd/rsyncd.password #創建密碼文件,密碼爲服務器端rsyncd.secrets文件中的密碼。 [root@client01 ~]# chmod 600 /etc/rsyncd/rsyncd.password |
同步:
[root@client01 ~]#rsync -avzP --password-file=/etc/rsyncd/rsyncd.password [email protected]::webhome /var/www/html/ receiving incremental file list |
說明:
--delete:本地與服務器完全一樣,如果本地存在不一樣的,則刪除,慎用
--password-file:指定密碼文件,如果不指定,則需手動輸入
-a :參數,相當於-rlptgoD,-r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有權限;-t 保持文件原有時間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當於塊設備文件;
-z :傳輸時壓縮;
-P :傳輸進度;
-v :傳輸時的進度等信息
apache@IP ::webhome 用雙冒號引用主配置文件中的定義資源,也可以使用單引號跟絕對路徑
以後同步時,只會同步新增內容。
最後將上述命令加入計劃任務定時同步即可。
提供大家一些參數資料(原諒我要豆):http://down.51cto.com/data/1180277