rsync ssh 數(shù)據(jù)同步分析
更新時(shí)間:2012年08月01日 17:05:14 作者:
可通過ssh進(jìn)行網(wǎng)絡(luò)加密傳輸,也可以利用ssh客戶端密鑰建立信任關(guān)系。當(dāng)在兩臺(tái)計(jì)算機(jī)之間保持大型、復(fù)雜目錄結(jié)構(gòu)的同步時(shí)候,比tar或wget等方式都要快。而且可以做到精確同步
1.rsync和ssh差異遠(yuǎn)程同步命令
命令格式:
#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ī)也會(huì)同步刪除
--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è)是本地路徑,如果忽略本地路徑,則只會(huì)列出遠(yuǎn)端的文件列表。
例子:
mkdir test_new; //本地建立一個(gè)測試目錄
ssh ljz@192.168.1.109:/home/ljz/test/ //這個(gè)是svn服務(wù)器中的賬戶目錄
將svn上test目錄下的內(nèi)容更新到本地test_new目錄下
rsync -ave ssh ljz@192.168.1.109:/home/ljz/test/ /home/ljz/test_new/
※需要注意的是,如果是/home/ljz/test/表示是test目錄下的所有內(nèi)容,/home/ljz/test表示連同這個(gè)目錄已經(jīng)目錄下的所有內(nèi)容
將本地內(nèi)容同步到遠(yuǎn)程目錄?
rsync -ave ssh /home/ljz/test_new/ ljz@192.168.1.109:/home/ljz/test/
1#rsync -avz --delete ljz@192.168.1.109:/home/ljz/test/ /home/ljz/New_Test/
將109上的test目錄內(nèi)容同步到本地的New_Test目錄,并刪除本地上源路徑中不存在的文件或目錄。
※千萬要注意--delete參數(shù),在使用此參數(shù)的時(shí)候,建議用絕對(duì)路徑指定本地目錄,防止清空當(dāng)前目錄。
二、建立rsync服務(wù)器
當(dāng)服務(wù)器沒有開通ssh,或備份方?jīng)]有ssh權(quán)限的時(shí)候,我們可以通過建立rsync服務(wù)器,進(jìn)行匿名的數(shù)據(jù)同步。
要使用rsync服務(wù),需要建立服務(wù)端和客戶端:
1、服務(wù)端
主配置文件:
#vi /etc/rsyncd.conf
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[test] #rsync區(qū)段的設(shè)定名稱
path = /var/www/html/test #需要同步的數(shù)據(jù)存放路徑
comment = test folder #注釋
uid = apache #采用什么身份進(jìn)行文件讀取
gid = apache #同上,必須是有讀取path權(quán)限的用戶、組
ignore errors #忽略錯(cuò)誤
read only = yes #只讀
list = no #不能列表
auth users = linuxing #連接rsync服務(wù)的帳號(hào)
secrets file = /etc/rsyncd.secrets #指定存放帳號(hào)密碼的位置
帳號(hào)密碼文件:
#vi /etc/rsyncd.secrets
#格式:帳號(hào):密碼 (每行一組,帳號(hào)和密碼用:號(hào)分開)
linuxing:backup
保存后,需要保證用戶是root,權(quán)限是600
#chown root:root /etc/rsyncd.secrets
#chmod 600 /etc/rsyncd.secrets
啟動(dòng)服務(wù):
#rsync --daemon
保證開機(jī)自動(dòng)啟動(dòng):
修改/etc/xinetd.d/rsync文件,把其中的disable=yes改為disable=no
#sed -i -e "/disable/{ s/yes/no/ }" /etc/xinetd.d/rsync
#service xinetd.d restart
2、客戶端
使用用法一中涉及到rsync://的方法即可。
如果rsync服務(wù)器需要密碼驗(yàn)證,可以增加--password-file參數(shù):
#rsync -azv --delete rsync://linuxing@192.168.1.100/test /var/www/html --password-file=/etc/test
#vi /etc/test
#指定訪問密碼
bakcup
#chmod 600 /etc/test
3、定時(shí)
另外,由于rsync客戶端沒有定時(shí)功能,我們可以通過在crontab中增加計(jì)劃任務(wù)實(shí)現(xiàn)定時(shí)的同步,如:(不要使用-v參數(shù),防止刷屏)
#crontab -e
0 22 * * 1-5 /usr/bin/rsync -az --delete rsync://linuxing@192.168.1.100/test /var/www/html --password-file=/etc/test
#指定星期一到五,每晚十點(diǎn)整進(jìn)行同步
三、總結(jié)
使用rsync的優(yōu)點(diǎn):可通過ssh進(jìn)行網(wǎng)絡(luò)加密傳輸,也可以利用ssh客戶端密鑰建立信任關(guān)系。當(dāng)在兩臺(tái)計(jì)算機(jī)之間保持大型、復(fù)雜目錄結(jié)構(gòu)的同步時(shí)候,比tar或wget等方式都要快。而且可以做到精確同步。
四、附錄
如果是通過編譯安裝的rsync(如FreeBSD),路徑有點(diǎn)不同:
服務(wù)器的配置文件在:/usr/local/etc/rsyncd.conf
啟動(dòng)文件:/usr/local/etc/rc.d/rsyncd.sh
命令文件:/usr/local/bin/rsync
系統(tǒng)啟動(dòng)托管:/etc/rc.conf(增加rsyncd_enable="YES")
復(fù)制代碼 代碼如下:
命令格式:
#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ī)也會(huì)同步刪除
--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è)是本地路徑,如果忽略本地路徑,則只會(huì)列出遠(yuǎn)端的文件列表。
例子:
mkdir test_new; //本地建立一個(gè)測試目錄
ssh ljz@192.168.1.109:/home/ljz/test/ //這個(gè)是svn服務(wù)器中的賬戶目錄
將svn上test目錄下的內(nèi)容更新到本地test_new目錄下
rsync -ave ssh ljz@192.168.1.109:/home/ljz/test/ /home/ljz/test_new/
※需要注意的是,如果是/home/ljz/test/表示是test目錄下的所有內(nèi)容,/home/ljz/test表示連同這個(gè)目錄已經(jīng)目錄下的所有內(nèi)容
將本地內(nèi)容同步到遠(yuǎn)程目錄?
rsync -ave ssh /home/ljz/test_new/ ljz@192.168.1.109:/home/ljz/test/
1#rsync -avz --delete ljz@192.168.1.109:/home/ljz/test/ /home/ljz/New_Test/
將109上的test目錄內(nèi)容同步到本地的New_Test目錄,并刪除本地上源路徑中不存在的文件或目錄。
※千萬要注意--delete參數(shù),在使用此參數(shù)的時(shí)候,建議用絕對(duì)路徑指定本地目錄,防止清空當(dāng)前目錄。
二、建立rsync服務(wù)器
當(dāng)服務(wù)器沒有開通ssh,或備份方?jīng)]有ssh權(quán)限的時(shí)候,我們可以通過建立rsync服務(wù)器,進(jìn)行匿名的數(shù)據(jù)同步。
要使用rsync服務(wù),需要建立服務(wù)端和客戶端:
1、服務(wù)端
主配置文件:
復(fù)制代碼 代碼如下:
#vi /etc/rsyncd.conf
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[test] #rsync區(qū)段的設(shè)定名稱
path = /var/www/html/test #需要同步的數(shù)據(jù)存放路徑
comment = test folder #注釋
uid = apache #采用什么身份進(jìn)行文件讀取
gid = apache #同上,必須是有讀取path權(quán)限的用戶、組
ignore errors #忽略錯(cuò)誤
read only = yes #只讀
list = no #不能列表
auth users = linuxing #連接rsync服務(wù)的帳號(hào)
secrets file = /etc/rsyncd.secrets #指定存放帳號(hào)密碼的位置
帳號(hào)密碼文件:
#vi /etc/rsyncd.secrets
#格式:帳號(hào):密碼 (每行一組,帳號(hào)和密碼用:號(hào)分開)
linuxing:backup
保存后,需要保證用戶是root,權(quán)限是600
#chown root:root /etc/rsyncd.secrets
#chmod 600 /etc/rsyncd.secrets
啟動(dòng)服務(wù):
#rsync --daemon
保證開機(jī)自動(dòng)啟動(dòng):
修改/etc/xinetd.d/rsync文件,把其中的disable=yes改為disable=no
#sed -i -e "/disable/{ s/yes/no/ }" /etc/xinetd.d/rsync
#service xinetd.d restart
2、客戶端
使用用法一中涉及到rsync://的方法即可。
如果rsync服務(wù)器需要密碼驗(yàn)證,可以增加--password-file參數(shù):
#rsync -azv --delete rsync://linuxing@192.168.1.100/test /var/www/html --password-file=/etc/test
#vi /etc/test
#指定訪問密碼
bakcup
#chmod 600 /etc/test
3、定時(shí)
另外,由于rsync客戶端沒有定時(shí)功能,我們可以通過在crontab中增加計(jì)劃任務(wù)實(shí)現(xiàn)定時(shí)的同步,如:(不要使用-v參數(shù),防止刷屏)
#crontab -e
0 22 * * 1-5 /usr/bin/rsync -az --delete rsync://linuxing@192.168.1.100/test /var/www/html --password-file=/etc/test
#指定星期一到五,每晚十點(diǎn)整進(jìn)行同步
三、總結(jié)
使用rsync的優(yōu)點(diǎn):可通過ssh進(jìn)行網(wǎng)絡(luò)加密傳輸,也可以利用ssh客戶端密鑰建立信任關(guān)系。當(dāng)在兩臺(tái)計(jì)算機(jī)之間保持大型、復(fù)雜目錄結(jié)構(gòu)的同步時(shí)候,比tar或wget等方式都要快。而且可以做到精確同步。
四、附錄
如果是通過編譯安裝的rsync(如FreeBSD),路徑有點(diǎn)不同:
服務(wù)器的配置文件在:/usr/local/etc/rsyncd.conf
啟動(dòng)文件:/usr/local/etc/rc.d/rsyncd.sh
命令文件:/usr/local/bin/rsync
系統(tǒng)啟動(dòng)托管:/etc/rc.conf(增加rsyncd_enable="YES")
相關(guān)文章
windows+apache+mod_python配置django運(yùn)行環(huán)境
環(huán)境:windows2008, apache2.2, python2.5, mod_python-3.3.1.win32-py2.5-Apache2.2, django-1.0.2_final2012-06-06win10同網(wǎng)段/跨網(wǎng)段訪問虛擬機(jī)samba服務(wù)器的過程記錄
這篇文章主要介紹了win10同網(wǎng)段/跨網(wǎng)段訪問虛擬機(jī)samba服務(wù)器,主要包括環(huán)境搭建和ubuntu端的安裝配置過程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06基于BaseHTTPRequestHandler的HTTP服務(wù)器使用及實(shí)現(xiàn)方法
BaseHTTPRequestHandler是Python中的一個(gè)基類,屬于http.server模塊,用于處理HTTP請(qǐng)求的基本功能,下面詳細(xì)介紹BaseHTTPRequestHandler的主要特點(diǎn)和使用方法,感興趣的朋友一起看看吧2023-10-10云服務(wù)器(Linux)安裝部署Kafka的詳細(xì)過程
這篇文章主要介紹了云服務(wù)器(Linux)安裝部署Kafka的詳細(xì)過程,kafka的安裝需要依賴于jdk,需要在服務(wù)器上提前安裝好該環(huán)境,這里使用用jdk1.8,本文給大家詳細(xì)介紹感興趣的朋友跟隨小編一起看看吧2022-11-11禁止IP訪問網(wǎng)站的多種方法分享(linux,php,nginx,apache)
禁止IP訪問網(wǎng)站的各種方法有許多,不同服務(wù)器環(huán)境的方法會(huì)所有不同,下面我總結(jié)我們常用的禁止IP訪問網(wǎng)站的實(shí)現(xiàn)配置方法,希望對(duì)大家會(huì)有所幫助2014-07-07