亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

rsync官方網址:https://rsync.samba.org/

一:rsync介紹

rsync是一款開源的、快速的、多功能的、可實現全量及增量的本地或遠程數據同步備份工具。

在守護進程模式(daemon mode)下,rsync默認監聽TCP端口873,以原生rsync傳輸協議或者通過遠程shell如RSH或者SSH提供文件。SSH模式下,rsync客戶端運行程序必須同時在本地和遠程機器上安裝。

全量與增量,全量:將全部數據進行傳輸覆蓋,增量:只傳輸差異部分的數據,rsync通過獨特的“quick check”算法,實現增量數據傳輸

rsync的功能

類似與cp命令    --- (本地備份傳輸數據)

類似于scp命令   --- (遠程備份傳輸數據)

類似于rm命令 --- (實現無差異同步備份)

類似于ls命令 --- (本地文件信息查看)

模擬環境,兩臺機器:linux 系統centos 7

備份服務器ip:172.16.2.4, 客戶端服務器(nfs存儲共享)ip:172.16.2.3

目的:將nfs服務器/www目錄的數據,備份到備份服務器的/backup/web目錄

擴展配置:

1:rsync+inotify實時監控同步備份:

2:rsync+sersync實時監控同步備份:

 

二:rsync的安裝

服務端(備份服務器)和客戶端都要安裝。

yum -y install rsync

如果想安裝最新版本,則自己wget官網最新版本,然后編譯安裝。

基本命令語法:

Local: rsync [OPTION...] SRC... [DEST]

Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

 

當然如果覺得記得復雜的話,就記住從前往后傳即可:rsync 參數 前面(源路徑) 后面(目的路徑)

注:源路徑如果是一個目錄的話,帶上尾隨斜線和不帶尾隨斜線是不一樣的,不帶尾隨斜線表示的是整個目錄包括目錄本身,帶上尾隨斜線表示的是目錄中的文件,不包括目錄本身。

 

三:三種傳輸方式

1):本地模式:類似與cp命令

將/etc/fstab同步至/tmp目錄,如果fstab加斜杠/,則將fstab目錄下所有文件同步至/tmp。

以下命令類似功能 cp /etc/fstab /tmp

rsync /etc/fstab /tmp #在本地同步,將fstab目錄同步至/tmp
rsync /etc/fstab/ /tmp #將fstab目錄下所有文件同步至/tmp

 

2):遠程模式:類似于scp命令

遠程分pull下載和push上傳兩種:

rsync -r /www 172.16.2.4:/backup/web 
# 將本地/www目錄上傳至遠程主機的/backup/web下,遠程/backup/web目錄和本地/www保持同步
rsync -r 172.16.2.4:/backup/web /www 
# 將遠程主機的/backup/web目錄下載到本地/www下,本地/www目錄和遠程/backup/web保持同步

 

3):守護進程模式(最主要的用法)

注意:如果是下載數據,遠端服務器源數據目錄權限可以為任意權限

注意:如果是上傳數據,遠端接收文件的目錄權限必須是rsync權限

3.1): 服務端配置

創建rsync系統用戶

useradd rsync -s /sbin/nologin -M 
#創建一個rsync的虛擬用戶,只被程序使用

修改服務端配置文件

vim /etc/rsyncd.conf

配置如下:

fake super = yes 這個選項版本以前是沒有的,在新版本中如果不加上這個參數,會報權限錯誤 rsync: chgrp ".hosts.G6sZha" (in backup) failed: Operation not permitted (1)

注:配置文件最后要刪除掉所有#注釋部分的備注信息,否則同步過程有可能會失敗l

uid = rsync #用戶 遠端命令使用rsync訪問共享目錄
gid = rsync #用戶組
use chroot = no #安全相關
max connections = 200 #最大連接數
timeout = 300 #超時時間(不進行備份多長時間斷開)
pid file = /var/run/rsyncd.pid #進程對應進程號文件(存放服務運行時進程id號)
lock file = /var/run/rsync.lock #鎖文件
log file = /var/log/rsyncd.log #日志文件,顯示出錯信息
fake super = yes #在新版本中必須加這個
#模塊信息:
[backup]
comment = "backup"
path = /backup/web #模塊對應的位置(路徑)
ignore errors #忽略錯誤程序
read only = false #是否只讀(這里是假,表示能寫入)
list = false #是否可以列表*
hosts allow = 172.16.2.0/24 #準許訪問rsync服務器客戶范圍(白名單)
#hosts deny = 0.0.0.0/32 #禁止訪問rsync服務器客戶范圍(黑名單)
auth users = rsync_backup #不存在的用戶,只用于認證
#設置進行連接認證的密鑰文件:
secrets file = /etc/rsync.password #認證時密鑰文件

創建數據備份存儲目錄

創建備份目錄,將backup目錄及目錄以下文件權限改為rsync

mkdir /backup/web
chown -R rsync.rsync /backup/
#一定要將文件屬主和屬組改成rsync用戶

 

創建認證用戶密碼文件,修改文件權限

注:密碼文件必須是600權限,否則報錯

echo "rsync_backup:123456" >/etc/rsync.password
chmod 600 /etc/rsync.password #為了安全起見,把認證用戶的密碼文件權限改成600

啟動rsync守護進程,并查看是否啟動

rsync --daemon #啟動守護進程
ps -ef |grep rsync #查看是否啟動進程
netstat -lntup |grep rsync #查看是否監聽873端口

查看已經正常啟動并監聽873端口:

Linux搭建rsync備用服務器,及配置文件詳解

 

3.2): 客戶端配置

創建密碼文件,客戶端密碼文件中,只需要密碼即可,密碼文件的權限是600

echo "123456" >/etc/rsync.password
chmod 600 /etc/rsync.password

3.3 ):傳輸測試,相關參數為服務端配置文件設置的

客戶端上傳至服務端測試:

/www/將本地www文件下所有文件上傳至備份服務器172.16.2.4。如果是/www,則是將整個www文件夾備份過去。

rsync_backup為服務器中配置文件的auth users參數,::backup是以后的模塊參數及配置文件中的[backup],后面接配置文件中的密碼文件路徑,免交互,不用輸入密碼就可傳輸。

rsync -avz /www/ [email protected]::backup --password-file=/etc/rsync.password

在客戶端下載測試:

將備份服務器的backup模塊配置的path路徑的文件下載至本地www目錄下。

rsync -avz [email protected]::backup --password-file=/etc/rsync.password /www

到此配置完成!!!

3.4): 添加開機啟動守護進程

echo "/usr/bin/rsync --daemon" >> /etc/rc.local

 

四:rsync命令參數(參考)

參數:說明

-v : --verbose 詳細模式輸出

-a:--archive 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rlptgoD

-z: 對備份的文件在傳輸時進行壓縮處理

-P: 顯示進度

-r: --recursive 對子目錄以遞歸模式處理

-l: --links 保留軟鏈結

-p: --perms 保持文件權限

-o: --owner 保持文件屬主信息

-g:--group 保持文件屬組信息

-D: --devices 保持設備文件信息

-t:--times 保持文件時間信息

-e: --rsh=command 指定使用rsh、ssh方式進行數據同步

-S: --sparse 對稀疏文件進行特殊處理以節省DST的空間

-n: --dry-run 現實哪些文件將被傳輸

-w:--whole-file 拷貝文件,不進行增量檢測

-B: --block-size=SIZE 檢驗算法使用的塊尺寸,默認是700字節。

-x: --one-file-system 不要跨越文件系統邊界

-R: -relative 使用相對路徑信息

-b: --backup 創建備份,也就是對于目的已經存在有同樣的文件名時,將老的文件重新命名為~filename。可以使用--suffix選項來指定不同的備份文件前綴。

-u: --update 僅僅進行更新,也就是跳過所有已經存在于DST,并且文件時間晚于要備份的文件,不覆蓋更新的文件

-q: --quiet 精簡輸出模式

-c: --checksum 打開校驗開關,強制對文件傳輸進行校驗

--exclude=PATTERN:指定排除不需要傳輸的文件模式

--exclude-from=FILE:排除FILE中指定模式的文件

--bwlimit=KBPS:限制I/O帶寬,KBytes per second

--delete:刪除那些DST中SRC沒有的文件

--password-file=FILE:從FILE中得到密碼

 

平常經常使用命令參數有rsync -avz

排除同步:--exclude=a (排除a)

rsync -avz --exclude=a /backup/ [email protected]::backup/ --password-file=/etc/rsync.password

 

排除a 和b

rsync -avz --exclude={a,b} /backup/ [email protected]::backup/ --password-file=/etc/rsync.password

 

排除連續的a-f

rsync -avz --exclude={a..f} /backup/ [email protected]::backup/ --password-file=/etc/rsync.password

 

完全同步:無差異同步--delete

rsync -avz --delete /backup/ [email protected]::backup/ --password-file=/etc/rsync.password

 

五:服務端配置文件屬性參數詳解(參考)

文件配置在vim /etc/rsyncd.conf,沒有的話需自己創建。

參數配置分為全局參數和模塊參數

全局參數如下:

常見的全局參數:說明

port : # 指定后臺程序使用的端口號,默認為873。

uid : # 該選項指定當該模塊傳輸文件時守護進程應該具有的uid,配合gid選項使用可以確定哪些可以訪問怎么樣的文件權限,默認值是" nobody"。

gid : # 該選項指定當該模塊傳輸文件時守護進程應該具有的gid。默認值為" nobody"。

max connections : # 指定該模塊的最大并發連接數量以保護服務器,超過限制的連接請求將被告知隨后再試。 默認值是0,也就是沒有限制。

lock file :# 指定支持max connections參數的鎖文件,默認值是/var/run/rsyncd.lock。

motd file : # " motd file"參數用來指定一個消息文件,當客戶連接服務器時該文件的內容顯示給客戶, 默認是沒有motd文件的。

log file : # " log file"指定rsync的日志文件,而不將日志發送給syslog。

pid file :# 指定rsync的pid文件,通常指定為“/var/run/rsyncd.pid”,存放進程ID的文件位置。

hosts allow = :# 單個IP地址或網絡地址 ,允許訪問的客戶機地址。

模塊參數[modul]如下:

常見的模塊參數:主要是定義服務器哪個要被同步輸出,其格式必須為“ [ 共享模塊名 ]” 形式,這個名字就是在 rsync 客戶端看到的名字,服務器真正同步的數據是通過 path 來指定的。

Comment : # 給模塊指定一個描述,該描述連同模塊名在客戶連接得到模塊列表時顯示給客戶。 默認沒有描述定義。

Path : # 指定該模塊的供備份的目錄樹路徑,該參數是必須指定的。

read only : # yes為只允許下載,no為可以下載和上傳文件到服務器。

exclude : # 用來指定多個由空格隔開的多個文件或目錄(相對路徑),將其添加到exclude列表中。 這等同于在客戶端命令中使用―exclude或----filter來指定某些文件或目錄不下載或上傳。

exclude from : # 指定一個包含exclude模式的定義的文件名,服務器從該文件中讀取exclude列表定義, 每個文件或目錄需要占用一行。

include : # 用來指定不排除符合要求的文件或目錄。這等同于在客戶端命令中使用--include來指定模式,結合include和exclude可以定義復雜的exclude/include規則。

include from : # 指定一個包含include模式的定義的文件名,服務器從該文件中讀取include列表定義。

auth users : # 該選項指定由空格或逗號分隔的用戶名列表,只有這些用戶才允許連接該模塊, 這里的用戶和系統用戶沒有任何關系。 如果" auth users"被設置,那么客戶端發出對該模塊的連接請求以后會被rsync請求challenged進行驗證身份這里使用的challenge/response認證協議。用戶的名和密碼以明文方式存放在" secrets file"選項指定的文件中。默認情況下無需密碼就可以連接模塊(也就是匿名方式)。

secrets file : # 該選項指定一個包含定義用戶名:密碼對的文件。 只有在" auth users"被定義時,該文件才有作用。文件每行包含一個username:passwd對。一般來說密碼最好不要超過8個字符。沒有默認的secures file名,注意:該文件的權限一定要是600,否則客戶端將不能連接服務器。

hosts allow : # 指定哪些IP的客戶允許連接該模塊。定義可以是以下形式: 單個IP地址,例如:192.167.0.1,多個IP或網段需要用空格隔開,整個網段,例如:192.168.0.0/24,也可以是192.168.0.0/255.255.255.0,“*”則表示所有,默認是允許所有主機連接。

hosts deny : # 指定不允許連接rsync服務器的機器,可以使用hosts allow的定義方式來進行定義。 默認是沒有hosts deny定義。

list : # 該選項設定當客戶請求可以使用的模塊列表時,該模塊是否應該被列出。 如果設置該選項為false,可以創建隱藏的模塊。默認值是true。

timeout :# 通過該選項可以覆蓋客戶指定的IP超時時間。通過該選項可以確保rsync服務器不會永遠等待一個崩潰的客戶端。超時單位為秒鐘,0表示沒有超時定義,這也是默認值。對于匿名rsync服務器來說,一個理想的數字是600。

ignore errors :   # 忽略I/P不正確 。

ignore nonreadable : # 忽略對用戶沒有可讀的文件。

分享到:
標簽:rsync
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定