1涣旨、rsync簡介
Rsync是一個(gè)快速和異常靈活的文件復(fù)制工具伤极,它能夠通過remote shell (rsh,ssh)或remote rsync daemon 來實(shí)現(xiàn)本地到或從遠(yuǎn)程主機(jī)的復(fù)制。它提供了大量選項(xiàng)來控制行為的方方面面,能夠彈性定義復(fù)制文件的屬性摹恨,通過delta-transfer算法登下,只發(fā)送源和目標(biāo)不同的文件來降低網(wǎng)絡(luò)數(shù)據(jù)傳輸量。rsync作為增強(qiáng)的copy命令廣泛的用于鏡像和備份淹冰。
rsync的額外特性:
1库车、支持復(fù)制文件保存文件的軟硬鏈接,屬主樱拴,屬組柠衍,權(quán)限等洋满。
2、類似于GNU tar的exclude ,exclude from選項(xiàng)珍坊。
3牺勾、CVS排除模式,忽略CVS要求的相同文件阵漏。
4资锰、能夠便用任何遠(yuǎn)程shell,如rcp粘勒、ssh等方式來傳輸文。
5、不要求超級用戶特權(quán)钞钙。
6、流水式文件傳輸最小化傳輸延時(shí)校坑。
7闯团、支持匿名或驗(yàn)證的rsync。
在沒有建立rsync服務(wù)器的情況下疹味,我們可以利用rsync命令直接進(jìn)行快速的差異備份
2仅叫、命令格式
#rsync [option] 源路徑 目標(biāo)路徑
其中:
[option]:
a:使用archive模式,等于-rlptgoD糙捺,即保持原有的文件權(quán)限
z:表示傳輸時(shí)壓縮數(shù)據(jù)
v:顯示到屏幕中
e:使用遠(yuǎn)程shell程序(可以使用rsh或ssh)
--delete:精確保存副本诫咱,源主機(jī)刪除的文件,目標(biāo)主機(jī)也會同步刪除
--include=PATTERN:不排除符合PATTERN的文件或目錄
--exclude=PATTERN:排除所有符合PATTERN的文件或目錄
--password-file:指定用于rsync服務(wù)器的用戶驗(yàn)證密碼
源路徑和目標(biāo)路徑可以使用如下格式:
rsync://[USER@]Host[:Port]/Path???? <--rsync服務(wù)器路徑
[USER@]Host::Path???????????????????????? <--rsync服務(wù)器的另一種表示形式
[USER@]Host:Path????????????????????????? <--遠(yuǎn)程路徑
LocalPath?????????????????????????????????????? <--本地路徑
※需要注意的是洪灯,來源或目的路徑最少要有一個(gè)是本地路徑坎缭,如果忽略本地路徑,則只會列出遠(yuǎn)端的文件列表签钩。
例子:
#rsync -ave ssh test:/home/ftp/pub/ /home/ftp/pub/
把源路徑中遠(yuǎn)端test機(jī)器上的/home/ftp/pub/目錄中的內(nèi)容掏呼,通過rsync同步到本地的/home/ftp/pub/目錄下。
◎小心源路徑結(jié)尾時(shí)候的/號铅檩,后綴/通知rsync復(fù)制該目錄的內(nèi)容憎夷,但不復(fù)制目錄本身。
例如:
#rsync -ave ssh test:/home/ftp/pub /home/ftp/
則會把pub目錄整個(gè)同步到本地/home/ftp/路徑中
#rsync -azv --delete rsync://linuxing@192.168.1.100/blog
/var/www/html/
通過linuxing登陸到192.168.1.100中昧旨,同步rsync服務(wù)器的blog項(xiàng)到本地的/var/www/html/拾给,并刪除本地上源路徑中不存在的文件或目錄。
※千萬要注意--delete參數(shù)兔沃,在使用此參數(shù)的時(shí)候蒋得,建議用絕對路徑指定本地目錄,防止清空當(dāng)前目錄粘拾。
3窄锅、服務(wù)器端設(shè)置
修改配置文件
vi /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = no???????? # 不使用chroot
max connections = 4
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[test]????????????????????????? #rsync區(qū)段
path = /var/www/html/test?????? #需要同步的目錄
comment =? test folder????????? #注釋
ignore errors?????????????????? #忽略錯(cuò)誤
read only = yes???????????????? #只讀
list = no?????????????????????? #不能列表
auth users = webrsync?????????? #連接rsync服務(wù)的用戶名
secrets file = /etc/rsyncd.secrets??? #指定存放帳號密碼的位置
創(chuàng)建帳號密碼文件:
vi /etc/rsync.pass
webrsync:myrsynpass
保存后,需要保證用戶是root,權(quán)限是600,否則會出現(xiàn)驗(yàn)證錯(cuò)誤。
chown root.root /etc/rsync.pass
chmod 600 /etc/rsync.pass