linux安裝rsync
A. 詳解rsync,一款卓越的增量同步工具(一)
Rsync (remote rsync) 是可以實現 增量備份 的遠程(和本地)文件復制工具,目的是實現本地主機和遠程主機上的文件同步(包括本地推到遠程,遠程拉到本地兩種同步方式),也可以實現本地不同路徑下(不同目錄、分區之間)文件的同步,但不能實現遠程路徑1到遠程路徑2之間的同步(scp可以實現)。配合計劃任務,rsync能實現 定時或周期同步 ;配合inotify或sersync,可以實現觸發式的 實時同步 。
本篇文章主要介紹rsync的使用方法和它常用的功能。
rsync官方網站: https://rsync.samba.org/
不考慮rsync的實現細節,就文件同步而言,涉及了源文件和目標文件的概念,還涉及了以哪邊文件為同步基準。例如,想讓目標主機上的文件和本地文件保持同步,則是以本地文件為同步基準,將本地文件作為源文件推送到目標主機上。反之,如果想讓本地主機上的文件和目標主機上的文件保持同步,則目標主機上的文件為同步基準,實現方式是將目標主機上的文件作為源文件拉取到本地。當然,要保持本地的兩個文件相互同步,rsync也一樣能實現,這就像linux中cp命令一樣,以本地某文件作為源,另一文件作為目標文件,但請注意,雖然rsync和cp能達到相同的目的,但它們的實現方式是不一樣的。
既然是文件同步,在同步過程中必然會涉及到源和目標兩文件之間版本控制的問題,例如是否要刪除源主機上沒有但目標上多出來的文件,目標文件比源文件更新(newer than source)時是否仍要保持同步,遇到軟鏈接時是拷貝軟鏈接本身還是拷貝軟鏈接所指向的文件,目標文件已存在時是否要先對其做個備份等等。
rsync同步過程中由兩部分模式組成:決定哪些文件需要同步的檢查模式以及文件同步時的同步模式。
(1).檢查模式是指按照指定規則來檢查哪些文件需要被同步,例如哪些文件是明確被排除不傳輸的。默認情況下,rsync使用"quick check"演算法快速檢查源文件和目標文件的大小、mtime(修改時間)是否一致,如果不一致則需要傳輸。當然,也可以通過在rsync命令行中指定某些選項來改變quick check的檢查模式,比如"--size-only"選項表示"quick check"將僅檢查文件大小不同的文件作為待傳輸文件。rsync支持非常多的選項,其中檢查模式的自定義性是非常有彈性的。
(2).同步模式是指在文件確定要被同步後,在同步過程發生之前要做哪些額外工作。例如上文所說的是否要先刪除源主機上沒有但目標主機上有的文件,是否要先備份已存在的目標文件,是否要追蹤鏈接文件等額外操作。rsync也提供非常多的選項使得同步模式變得更具彈性。
相對來說,為rsync手動指定同步模式的選項更常見一些,只有在有特殊需求時才指定檢查模式,因為大多數檢查模式選項都可能會影響rsync的性能。
以下是rsync的語法:
由此語法可知,rsync有三種工作方式:
(1).本地文件系統上實現同步。命令行語法格式為上述"Local"段的格式。
(2).本地主機使用遠程shell和遠程主機通信。命令行語法格式為上述"Access via remote shell"段的格式。
(3).本地主機通過網路套接字連接遠程主機上的rsync daemon。命令行語法格式為上述"Access via rsync daemon"段的格式。
前兩者的本質是通過管道通信,即使是遠程shell。而方式(3)則是讓遠程主機上運行rsync服務,使其監聽在一個埠上,等待客戶端的連接。
但是,還有第四種工作方式:
(4).通過遠程shell也能臨時啟動一個rsync daemon,這不同於方式(3),它不要求遠程主機上事先啟動rsync服務,而是臨時派生出rsync daemon,它是單用途的一次性daemon,僅用於臨時讀取daemon的配置文件,當此次rsync同步完成,遠程shell啟動的rsync daemon進程也會自動消逝。此通信方式的命令行語法格式同"Access via rsync daemon",但要求options部分必須明確指定"--rsh"選項或其短選項"-e"。
如需源碼安裝,請關注即將發布的《詳解Rsync,一款卓越的增量同步工具(二)》
系統環境:
伺服器配置:阿里雲ECS 11G
操作系統:CentOS7.2
rsync 版本:3.1.2
rsync 伺服器:rsync-server (10.168.152.72)
rsync 客戶端:rsync-client (10.117.217.172)
檢查rsync 是否已經安裝
若已安裝,無需重新安裝;若未安裝,用以下命令安裝:
寫入以下配置到該文件:
輸入,格式是「用戶名:口令」,用戶不要求是系統用戶
root:pwd123456
輸入:
======welcome to synchronize appdata======
如果rsync啟動成功,可以看到873埠已經在監聽了。
檢查rsync 是否已經安裝
若已安裝,無需重新安裝;若未安裝,用以下命令安裝:
更多同步數據的場景演示,請關注即將發布的《詳解Rsync,一款卓越的增量同步工具(二)》
配置文件 rsyncd.conf 由全局配置和若干模塊配置組成。配置文件的語法為:
全局參數
在文件中 [mole] 之外的所有配置行都是全局參數。當然也可以在全局參數部分定義模塊參數,這時該參數的值就是所有模塊的默認值。
模塊參數
模塊參數主要用於定義 rsync 伺服器哪個目錄要被同步。模塊聲明的格式必須為 [mole] 形式,這個名字就是在 rsync 客戶端看到的名字,類似於 Samba 伺服器提供的共享名。而伺服器真正同步的數據是通過 path 來指定的。可以根據自己的需要,來指定多個模塊,模塊中可以定義以下參數:
a. 基本模塊參數
b. 模塊控制參數
c. 模塊文件篩選參數
d. 模塊用戶認證參數
e. 模塊訪問控制參數
客戶主機列表定義可以是以下形式:
f. 模塊日誌參數
設置了」log file」參數時,在日誌每行的開始會添加」%t [%p]「。
可以使用的日誌格式定義符如下所示:
B. linux之間傳文件用什麼工具好呢
1. 前言
linux之間傳文件命令用什麼命令?本文介紹一種最常用,也是功能強大的文件同步和傳輸工具Rsync,本文提供詳細傻瓜式教程。
在本教程中,我們將通過實際使用案例和最常見的rsync選項的詳細說明向您展示如何使用rsync。
本教程適用於Ubuntu系統、Linux Mint系統、Deepin深度Linux系統、Fedora系統、Debian系統、Elementary OS系統、OpenSUSE系統、CentOS系統、RHEL系統,Arch Linux等等GNU Linux發行版。
2. `rsync`介紹
Rsync是一個快速且通用的命令行實用程序,它可以使Windows與Linux之間,Linux與Linux之間傳文件或者Linux與MAC OS之間傳文件。或從Linux本地文件系統到遠程Rsync守護進程之間同步文件和文件夾。它只傳輸源和目標之間的差異,從而提供快速增量文件傳輸。
Rsync可以用於鏡像數據、增量備份、在Linux系統之間傳文件,也可以用於Linux與Windows之間傳輸文件,還可以替代日常使用的scp、sftp和cp命令,他們一般也用於Linux之間傳文件或者Linux與MAC OS之間傳文件。
3. 如何安裝`Rsync`
rsync實用程序預裝在大多數Linux發行版和macOS上。你可以輸入以下命令,檢查你的系統是否已安裝:
查看Rsync版本的輸出結果:
如果您的系統上沒有安裝rsync,您可以使用發行版的包管理器輕松地安裝它。
在Ubuntu 或者Debian體系的Linux系統上安裝rsync
在CentOS 或者Fedora系統上安裝rsync
4. Rsync命令使用語法
在討論如何使用rsync命令之前,讓我們先回顧一下基本語法。
rsync實用程序表達式採用以下形式:
rsync提供了許多選項來控制其行為和功能。最廣泛使用的選項是:
-a, --archive, 歸檔模式, 相當於 -rlptgoD。這個選項告訴rsync遞歸地同步目錄、傳輸特殊設備和塊設備、保存符號鏈接、修改時間、組、所有權和許可權。
-z, --compress. 這個選項將強制rsync在傳送文件到目標計算機時壓縮數據。僅當到遠程計算機的連接很慢時才使用此選項。
-P, 相當於--partial --progress。使用此選項時,rsync將在傳輸期間顯示一個進度條,並保留部分傳輸的文件。當通過緩慢或不穩定的網路連接傳輸大文件時,它非常有用。
--delete. 使用此選項時,rsync將從目標位置刪除無關文件。它對鏡像很有用。
-q, --quiet。如果希望禁用非錯誤消息,請使用此選項。
-e. 此選項允許您選擇不同的遠程shell。默認情況下,rsync被配置為使用ssh。
5. 使用Rsync最基本的功能使Linux之間傳輸文件
要將一個文件從一個本地位置復制到另一個本地位置,可以運行以下命令:
運行該命令的用戶必須具有目標位置上的讀許可權和目標上的寫許可權。
從目標位置省略文件名將復制具有當前名稱的文件。如果您想將文件保存在另一個名稱下,請在目標部件上指定新名稱:
比如復制filename.zip到目標目錄並重新把文件名修改為newfilename.zip
在下面的例子中,我們正在創建一個本地備份我們的網站文件:
如果目標目錄不存在,rsync將創建它。
值得一提的是,rsync對後面帶有斜杠/的源目錄提供了不同的處理。如果在源目錄上添加一個尾隨斜杠,它將只將目錄的內容復制到目標目錄。當後面的斜杠被省略時,rsync將把源目錄復制到目標目錄中。
6. 如何使用Rsync與遠程伺服器同步文件(包括上傳下載)
當使用rsync進行遠程傳輸時,必須同時安裝在源機器和目標機器上。rsync的新版本被配置為使用SSH作為默認遠程shell。
在下面的例子中,我們將一個目錄從本地轉移到遠程機器:
如果你需要配置2台Linux之間免密碼登錄,請查看以下教程:
如果你想把數據從遠程傳輸到本地機器,你需要使用遠程位置作為一個源:
如果遠程主機上的SSH監聽的埠不是默認的22埠,那麼可以使用-e選項指定埠:
比如遠程伺服器的SSH埠被修改為1234
當傳輸大量數據時,建議在屏幕會話中運行rsync命令或使用-P選項:
7. 使用Rsync傳送或同步文件時,排除某些文件或者目錄
當使用Rsync排除文件或目錄時,需要使用它們到源位置的相對路徑。
有兩個選項可以排除文件和目錄。第一個選項是使用--exclude參數,並在命令行中指定要排除的文件和目錄。
在下面的例子中,我們排除了位於src_directory中的123和abc目錄:
第二個選項是使用--exclude-from參數,並指定要在文件中排除的文件和目錄。
vi exclude-file.txt
加入需要排除的文件,比如文件file1.c,目錄zcwyou:
8. 總結
在本教程中,您學習了如何使用Rsync在多台Linux之間傳輸、復制或同步文件和目錄。在Rsync用戶手冊頁面上有更多關於Rsync的內容。
如果你有任何問題,請留下你的意見。
C. linux下怎麼安裝rsync實現定時增量備份文件
伺服器需求:需要備份文件的伺服器(伺服器端):192.168.10.2 (RHEL 5)
接收備份文件的伺服器(客戶端):192.168.10.3 (RHEL 5)
實現功能:
通過rsync工具對turbomail郵件伺服器的accounts目錄和conf目錄進行增量備份。
accounts目錄:用於存儲用戶相關信息的目錄
conf目錄:用戶配置文件存放目錄
前提條件:
先將turbomail郵件系統安裝好(伺服器端與客戶端操作一樣)
安裝過程如下:
1、掛載光碟機:mount /dev/cdrom
2、將turbomail的安裝包拷貝到跟目錄下/
#cd /dev/cdrom
#cp turbomail_linux_x86_xxx.tgz
3、解壓turbomail安裝包
tar –zxvf turbomail_linux_x86_xxx.tgz
4、啟動turbomail
#cd /turbomail
#./starttm.sh
#cd /turbomail/web/bin/
#./startup.sh 5、修改啟動腳本/etc/rc.d/rc.local
使郵件伺服器開機自動啟動加入以下幾行:#/turbomail/starttm.sh &
#/turbomail/web/bin/startup.sh & #/turbomail/safestart.sh &
rsync的配置如下:
1.伺服器端rsync的配置:使用系統自帶的rsync工具,插入系統啟動光碟,通過rpm安裝rsync工具。
若採用採用源碼包安裝,上傳安裝包到伺服器1)tar –zxvf rsyncrsync-2.6.9.tar.gz #解壓2)cd rsyncrsync-2.6.9 3)./configure #默認配置,生成編譯環境
D. 如何在Linux伺服器中實現數據實時同步及備份
科技時代,任何行業都離不開數據的分析以及統籌,如果掌握了最關鍵的數據及技術,那成功就指日可待,所以數據對於一個企業來說,就是最無形的財富,而一個企業的數據基本都有伺服器保存及管理著,如何保證數據安全,實現數據同步及備份?誠愷科技小編就同大家一起來看看在Linux伺服器中利用rsync配合inotify實現數據實時同步及備份的方法。
rsync:可以鏡像保存整個目錄樹和文件系統。可以很容易做到保持原來文件的許可權、時間、軟硬鏈接等等。第一次同步時 rsync 會復制全部內容,但在下一次只傳輸修改過的文件。
方案:起初用rsync進行數據備份是利用計劃任務,定時執行一下命令實現rsync的同步,但最近開發這邊修改比較頻繁,看來需要實時同步備份來完善備份機制!所以需要利用inotify觸發器來改善!達到一旦指定的位置有了新的變動就將其同步!
環境:
CentOS 6.4 64位
rsync-3.0.9
inotify-tools-3.14
說明:
10.10.1.6 (rsync+inotify)----------網站程序(/data0/htdocs/)
10.10.1.9 (rsync)------------------網站程序備份(/data0/htdocs/)
目的:
實現10.10.1.6的/data0/htdocs/目錄下發生任何變動都將實時同步到10.10.1.9的/data0/htdocs/上(另,這兩台都跑有keepalived+nginx,來實現出現故障自動切換的容災,詳細配置會在後面補上)
一、web伺服器10.10.1.6 (rsync+inotify)
1、准備軟體包
2、安裝Rsync
1)、1234 tar-zxvf rsync-3.0.9.tar.gz
2)、cdrsync-3.0.9
3)、./configure--prefix=/usr/local/rsync
4)、make;makeinstall
建立密碼認證文件
[root@ftp ~]# echo "111111">/etc/rsyncd/rsyncd.secrets建立密碼認證文件
*其中111111可以自己設置密碼,rsyncd.secrets名字也可以自己設置;
許可權:要將/etc/rsyncd/rsyncd.secrets設置為root擁有, 且許可權為600。
# chmod 600 /etc/rsyncd/rsyncd.secrets
3、安裝inotify
1)、1234 tar-zxvf inotify-tools-3.14.tar.gz
2)、cdinotify-tools-3.14
3)、./configure--prefix=/usr/local/inotify
4)、make;makeinstall
4、創建rsync復制腳本
此項功能主要是將ftp端的目錄/data0/htdocs/里的內容,如果修改了(無論是添加、修改、刪除文件)能夠通過inotify監控到,並通過rsync實時的同步給10.10.1.9的/data0/htdocs里,下面是通過shell腳本實現的。
[root@web ~]# vim /root/shell/rsync.sh
[root@web ~]# chmod u+x /root/shell/rsync.sh
[root@web ~]# setsid /root/shell/rsync.sh &
#後台運行腳本,關閉shell終端繼續後台運行
rsync.sh腳本加入開機啟動項
# echo "/root/shell/rsync.sh" >> /etc/rc.local
防火牆開啟rsync埠:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重啟:
# /etc/init.d/iptables restart
二、備份伺服器10.10.1.9(rsync)
1、准備工作
創建備份目錄:
# mkdir /data0/htdocs
2、安裝rsync(備份主機只安裝rsync)
1)、1234 tar-zxvf rsync-3.0.9.tar.gz
2)、cdrsync-3.0.9
3)、./configure--prefix=/usr/local/rsync
4)、make;makeinstall
3、建立用戶與密碼認證文件
[root@backup ~]# echo "root:111111" > /etc/ rsyncd/rsyncd.secrets
[root@backup ~]# less /etc/rsyncd/rsyncd.secrets
root:111111
注意:
請記住,在10.10.1.6端建立的密碼文件,只有密碼,沒有用戶名;而在10.10.1.9里建立的密碼文件,用戶名與密碼都有。
許可權:要將/etc/rsyncd/rsyncd.secrets設置為root擁有, 且許可權為600。
#chmod 600 /etc/rsyncd/rsyncd.secrets
4、建立rsync配置文件
[root@backup ~]# vim /etc/rsyncd/rsyncd.conf
啟動rsync服務
# /usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf
# ps -ef |grep rsync
Rsync服務加入開機啟動項
# echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.local
防火牆開啟rsync埠:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重啟:
# /etc/init.d/iptables restart
完成,其實這個時候數據已經同步了!
測試一下:
由於/data0/htdocs/下涉及到一些公司信息,所以就以/data0/htdocs/tmp/為例
主機名可以區別是兩台機器,裡面的內容完全一直,連文件的屬性都一樣
再對裡面修改一下試試,創建一個文件,然後刪除user目錄試試
E. Linux下數據備份命令scp、rsync和後台運行
scp和rsync 均可實現文件的復制,但相比較,scp佔用系統資源較小,rsync速度較快。當小文件眾多時,rsync會導致硬碟I/O非常高,而scp基本不影響系統正常使用。可根據需要這倆選其一實現文件復制。
scp 是secure 的縮寫,scp是Linux系統下基於ssh登錄進行安全的遠程文件拷貝命令。
可以實現本地文件復制到遠程伺服器,也可以將遠程文件復制到本地。
rsync 是remote sync的縮寫。使用rsync備份數據時,不會直接覆蓋以前的數據(如果數據已經存在),而是先判斷已存在的數據和新數據的差異(默認規則是文件大小或修改時間有差異),只有數據不相同時才會把不相同的部分覆蓋。在僅作增量數據的時比scp靈活。
一般CentOS默認安裝rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安裝。
單個冒號和雙冒號的區別 :使用rsync在遠程傳輸數據前,是需要進行登陸認證的,這個過程可使用ssh協議也可以使用rsync協議完成。單冒號(:)使用的是ssh協議;雙冒號(::)使用的是rsync協議。
默認情況下,rsync只確保源文件的所有內容(明確排除的文件除外)都復制到目標目錄。它不會使兩個目錄保持不同,並且不會刪除文件。如果要使目標目錄成為源目錄的鏡像副本,則使用--delete選項。可刪除只存在目標目錄,不存在於源目錄的文件。
增量備份算是一個經常使用的場景了。兩台伺服器之間進行文件定期備份,無需所有文件都一遍,僅復制有變動的文件。
具體做法是,第一次同步是全量備份,所有文件在基準目錄裡面同步一份。以後每一次同步都是增量備份,只同步源目錄與基準目錄之間有變動的部分,將這部分保存在一個新的目標目錄。這個新的目標目錄之中,也是包含所有文件,但實際上,只有那些變動過的文件是存在於該目錄,其他沒有變動的文件都是指向基準目錄文件的硬鏈接。
--link-dest 參數用來指定同步時的基準目錄。
上面命令中, --link-dest 參數指定基準目錄 /compare/path ,然後源目錄 /source/path 跟基準目錄進行比較,找出變動的文件,將它們拷貝到目標目錄 /target/path 。那些沒變動的文件則會生成硬鏈接。這個命令的第一次備份時是全量備份,後面就都是增量備份了。
一般伺服器之間復制文件都比較大,為防止誤操作,最好在後台運行。但因為需要和遠程伺服器之間的ssh通訊多是需要密碼的,所以不能直接使用nohup 放置於後台。無論是scp還是rsync都可操作如下:
後台和前台任務的切換
scp不支持斷點續傳,掛起scp進程可能導致數據缺失。傾向於使用rsync。
如果有其他任務需要使用nohup後台運行,但執行時卻忘記了使用nohup,也可參照此方法進行設置。
參考:1. Linux之scp命令及後台運行scp
F. rsync 安裝步驟、服務端、客戶端、同步文件
需要定時把客戶機上的文件增量同步到伺服器上,達到備份效果。
伺服器:linux系統
客戶機:windows系統
1.linux上安裝rsync服務端;
2.windows上安裝rsync客戶端;
3.客戶端上每5分鍾觸發一次同步。
# vi /usr/local/rsync/rsyncd.conf
# vi /usr/local/rsync/rsyncd.secrets
鍵入: # testUser:123456 後保存。
此文件許可權必須設置:600:
# chmod 600 /usr/local/rsync/rsyncd.secrets
# vi /usr/local/rsync/rsyncd.motd
鍵入歡迎語,如:
# welcome use rsync service
# /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf
# ps aux | grep rsyncd
# vi /etc/rc.local
鍵入:
# /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf
# firewall-cmd --permanent --zone=public --add-port=873/tcp
# firewall-cmd --reload
123456
# chmod.exe 600 /cygdrive/c/etc/rsync.client.password
windows下,文件右鍵屬性-安全-高級-修改所有者-鍵入administrator-檢查名稱-保存
C:\etc\waveform_analysis
# rsync.exe --port=873 -arvzP --timeout=30 --contimeout=30 --password-file=/cygdrive/c/etc/rsync.client.password testUser@伺服器IP::testMole /cygdrive/c/etc/waveform_analysis
# rsync.exe --port=873 -arvzP --timeout=30 --contimeout=30 --password-file=/cygdrive/c/etc/rsync.client.password /cygdrive/c/etc/waveform_analysis/ testUser@伺服器IP::testMole
rsync的缺陷在於無法實現主動觸發同步,可以安裝成服務,然後定時執行同步,比如每5分鍾觸發一次同步:
使用 nssm 把 bat 安裝成 windows 服務 - (jianshu.com)
G. linux下如何實現增量備份
伺服器需求:
需要備份文件的伺服器(伺服器端):192.168.10.2 (RHEL 5)
接收備份文件的伺服器(客戶端):192.168.10.3 (RHEL 5)
實現功能:
通過rsync工具對turbomail郵件伺服器的accounts目錄和conf目錄進行增量備份。
accounts目錄:用於存儲用戶相關信息的目錄
conf目錄:用戶配置文件存放目錄
前提條件:
先將turbomail郵件系統安裝好(伺服器端與客戶端操作一樣)
安裝過程如下:
1、掛載光碟機:mount /dev/cdrom
2、將turbomail的安裝包拷貝到跟目錄下/
#cd /dev/cdrom
#cp turbomail_linux_x86_xxx.tgz
3、解壓turbomail安裝包
tar –zxvf turbomail_linux_x86_xxx.tgz
4、啟動turbomail
#cd /turbomail
#./starttm.sh
#cd /turbomail/web/bin/
#./startup.sh 5、修改啟動腳本/etc/rc.d/rc.local
使郵件伺服器開機自動啟動加入以下幾行:#/turbomail/starttm.sh &
#/turbomail/web/bin/startup.sh & #/turbomail/safestart.sh &
rsync的配置如下:
1.伺服器端rsync的配置:使用系統自帶的rsync工具,插入系統啟動光碟,通過rpm安裝rsync工具。
若採用採用源碼包安裝,上傳安裝包到伺服器1)tar –zxvf rsyncrsync-2.6.9.tar.gz #解壓2)cd rsyncrsync-2.6.9 3)./configure #默認配置,生成編譯環境
4)make #編譯
5)make install #安裝完成,任何步驟有疑問輸入echo $?查返回值,0表示成功,其他都為失敗rsync 版本
2.4.6(可以從http://rsync.samba.org/rsync/獲得最新版本)
1)編輯/etc/rsyncd.conf文件,rsync的主要配置文件:
#[globale]
strict modes= yes
#check passwd file
port= 873 #rsync工具默認使用的埠
#default port
logfile= /var/log/rsyncd.log #日誌文件存放路徑pidfile= /var/run/rsyncd.pid #記錄rsync運行時的進程ID
max connections= 4 #同上最大的鏈接數
#[moles] #同步模塊的配置
[rsync]
uid= root #該選項指定當該模塊傳輸文件時守護進程應該具有的uid
gid= root #該選項指定當該模塊傳輸文件時守護進程應該具有的gid
ignore errors #忽略一些無關的錯誤信息
#要備份的目錄
path= /turbomail/accounts #需要同步的目錄
read only= no #是否設置以只讀的方式運行
host allow= 192.168.10.3 #同步數據的客戶端ip如有多個客戶端,以「,」隔開即可
auth users= zhouhw #同步用的用戶名
secrets file= /etc/rsyncd.scrt #同步的密碼認證文件
[test]
uid= root #該選項指定當該模塊傳輸文件時守護進程應該具有的uid
gid= root #該選項指定當該模塊傳輸文件時守護進程應該具有的gid
ignore errors #忽略一些無關的錯誤信息
#要備份的目錄
path= /turbomail/conf #需要同步的目錄
read only= no #是否設置以只讀的方式運行
host allow= 192.168.10.3 #同步數據的客戶端ip如有多個客戶端,以「,」隔開即可
auth users= zhouhw #同步用的用戶名
secrets file= /etc/rsyncd.scrt #同步的密碼認證文件2)編輯/etc/rsyncd.scrt文件,密碼認證文件
zhouhw:123456
該更許可權為600:chmod 600 /etc/rsyncd.scrt 3) 運行rsync --daemon,並在/etc/rc.d/rc.local加入此語句,開機自動啟動。
備註:rsync默認埠873,若安裝了iptables,如需改動啟動時啟動rsync –port 873,請在iptables 中開放該埠,語句如下:
iptables -I INPUT -p tcp --dport 873 -j ACCEPT
4)編輯/etc/xinetd.d/rsync
rsync服務的監聽由xinet來統一分配:
service rsync
{
disable = no #將此項改為no
socket_typ
e = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
重啟xinetd以啟動rsync服務
service xinetd restart
5)查看rsync事故正常運行
輸入命令:netstat -ant|grep :873若有顯示以下一條語句,則說明rsync服務已經正常啟動了。
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2.客戶端的配置:使用系統自帶的rsync工具,插入系統啟動光碟,通過rpm安裝rsync工具。
1)編輯/etc/rsyncd.scrt文件,密碼認證文件
zhouhw:123456
該更許可權為600:chmod 600 /etc/rsyncd.scrt 2)編輯腳本vi /root/scrpit/rsync.sh並加入開機自動啟動。
#!/bin/sh /usr/bin/rsync -vazu --progress --delete
[email protected]::rsync /turbomail --password-file=/etc/rsyncd.scrt
[email protected]::test /turbomail
--password-file=/etc/rsyncd.scrt修改許可權:chmod u+x
/root/scrpit/rsync.sh執行./rsync.sh 同步數據。
3)編輯/etc/crontab文件,定義為每小時30分鍾執行一次數據同步。
vi /etc/crontab
# run-parts
01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root
run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4
1 * * root run-parts /etc/cron.monthly 30 * * * * root
/root/scrpit/rsync.sh客戶端的配置到此就可以了,伺服器與客戶端的數據也會在每小時的第30分鍾執行一次。
客戶端同步命令詳解:
v, --verbose 詳細模式輸出-q, --quiet 精簡輸出模式-c, --checksum
打開校驗開關,強制對文件傳輸進行校驗-a, --archive 歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rlptgoD
-r, --recursive 對子目錄以遞歸模式處理-R, --relative 使用相對路徑信息-b, --backup
創建備份,也就是對於目的已經存在有同樣的文件名時,將老的文件重新命名為~filename。可以使用--suffix選項來指定不同的備份文件前綴。
--backup-dir 將備份文件(如~filename)存放在在目錄下。
-suffix=SUFFIX定義備份文件前綴
-u, --update 僅僅進行更新,也就是跳過所有已經存在於DST,並且文件時間晚於要備份的文件。(不覆蓋更新的文件) -l, --links 保留軟鏈結-L, ---links 想對待常規文件一樣處理軟鏈結
---unsafe-links僅僅拷貝指向SRC路徑目錄樹以外的鏈結
--safe-links忽略指向SRC路徑目錄樹以外的鏈結
-H, --hard-links 保留硬鏈結-p, --perms 保持文件許可權-o, --owner 保持文件屬主信息-g,
--group 保持文件屬組信息-D, --devices 保持設備文件信息-t, --times 保持文件時間信息-S, --sparse
對稀疏文件進行特殊處理以節省DST的空間-n, --dry-run現實哪些文件將被傳輸-W, --whole-file
拷貝文件,不進行增量檢測-x, --one-file-system 不要跨越文件系統邊界-B, --block-size=SIZE
檢驗演算法使用的塊尺寸,默認是700位元組-e, --rsh=COMMAND 指定替代rsh的shell程序
--rsync-path=PATH指定遠程伺服器上的rsync命令所在路徑信息
-C, --cvs-exclude 使用和CVS一樣的方法自動忽略文件,用來排除那些不希望傳輸的文件--existing 僅僅更新那些已經存在於DST的文件,而不備份那些新創建的文件
--delete刪除那些DST中SRC沒有的文件
--delete-excluded同樣刪除接收端那些被該選項指定排除的文件
--delete-after傳輸結束以後再刪除
--ignore-errors及時出現IO錯誤也進行刪除
--max-delete=NUM最多刪除NUM個文件
--partial 保留那些因故沒有完全傳輸的文件,以是加快隨後的再次傳輸--force 強制刪除目錄,即使不為空
--numeric-ids不將數字的用戶和組ID匹配為用戶名和組名
--timeout=TIME IP超時時間,單位為秒-I, --ignore-times
不跳過那些有同樣的時間和長度的文件--size-only
當決定是否要備份文件時,僅僅察看文件大小而不考慮文件時間--modify-window=NUM 決定文件是否時間相同時使用的時間戳窗口,默認為0
-T --temp-dir=DIR在DIR中創建臨時文件
--compare-dest=DIR同樣比較DIR中的文件來決定是否需要備份
-P等同於--partial
--progress顯示備份過程
-z, --compress 對備份的文件在傳輸時進行壓縮處理
--exclude=PATTERN指定排除不需要傳輸的文件模式
--include=PATTERN指定不排除而需要傳輸的文件模式
--exclude-from=FILE排除F
ILE中指定模式的文件
--include-from=FILE不排除FILE指定模式匹配的文件
--version列印版本信息
--address綁定到特定的地址
--config=FILE 指定其他的配置文件,不使用默認的rsyncd.conf文件
--port=PORT指定其他的rsync服務埠
--blocking-io對遠程shell使用阻塞IO
-stats給出某些文件的傳輸狀態
--progress在傳輸時現實傳輸過程
--log-format=formAT指定日誌文件格式
--password-file=FILE從FILE中得到密碼
--bwlimit=KBPS 限制I/O帶寬,KBytes per second -h, --help 顯示幫助信息