CentOS7.5搭建Rsync,實現文件同步

Rsync(remote sync)是UNIX及類UNIX平臺下一款神奇的數據鏡像備份軟件,它不像FTP或其餘文件傳輸服務那樣須要進行全備份,Rsync能夠根據數據的變化進行差別備份,從而減小數據流量,提升工做效率。可使用它進行本地數據或遠程數據的複製,Rsync可使用SSH安全隧道進行加密數據傳輸。Rsync服務器端定義源數據,Rsync客戶端僅在源數據發生改變後纔會從服務器上實際複製數據至本地,若是源數據在服務器端被刪除,則客戶端數據也會被刪除,以確保主機之間的數據是同步的。Rsync使用TCP 873端口。shell

1.搭建 Rsync服務器

# yum安裝安全

yum install rsync服務器

# 啓動Rsync併發

systemctl start rsyncd工具

# 容許開機自啓動測試

systemctl enable rsyncdui

# 檢查是否已經成功啓動加密

netstat -lnp |grep 873spa

 

由於Rsync是Andrew Tridgell(Samba的做者)與Paul Mackerras合做開發的軟件,因此Rsync配置文件與Samba配置文件比較類似。Rsync主要分爲三個配置文件,分別是:rsyncd.conf(主配置文件)、rsyncd.secrets(密碼文件)和rsyncd.motd(服務器信息文件)。3d

下面的案例演示瞭如何共享/common目錄,爲此,咱們須要建立/common目錄,並複製一些測試文件存放在該目錄下。本例須要手動建立配置文件

mkdir /common

cp /etc/init.d/* /common/

 

#/etc/rsyncd.conf #設置服務器信息提示文件名稱,在該文件中編寫提示信息 motd file=/etc/rsyncd.motd #開啓Rsync數據傳輸日誌功能 transfer logging=yes #設置日誌文件名稱,能夠經過1og format參數設置日誌格式 log file=/var/1og/rsyncd.1og #設置Rsync進程號保存文件名稱 pid file=/var/run/rsyncd.pid #設置鎖文件名稱 lock file=/var/run/rsync.lock #設置服務器監聽的端口號,默認爲873 port=873 #設置服務器所監聽網卡接口的IP地址,這裏服務器IP地址爲192.168.5.5 address=192.168.5.5 #設置進行數據傳輸時所使用的帳戶名稱或ID號,默認使用nobody uid=nobody #設置進行數據傳輸時所使用的組名稱或GID號,默認使用nobody gid=nobody #設置user chroot爲yes後,rsync會首先進行chroot 設置,將根映射到path參數路徑下,對客戶端而言,系統的根就是path參數所指定的路徑。但這樣作須要root權限,而且在同步符號連 接資料時僅會同步名稱,而內容將不會同步。 use chroot=no #是否容許客戶端上傳數據,這裏設置爲只讀。 read only=yes #設置併發鏈接數,0表明無限制。超出併發數後,若是依然有客戶端鏈接請求,則將會收到稍後重試的提示消息 max connections=10 #模塊,Rsync經過模塊定義同步的目錄,模塊以[name]的形式定義,這與Samba定義共享目錄是同樣的效果。在Rsync中也能夠定義多個模塊 [common] #comment定義註釋說明字串 comment=Web content #同步目錄的真實路徑經過path指定 path=/common #忽略一些IO錯誤 ignore errors #exclude能夠指定例外的目錄,即將common目錄下的某個目錄設置爲不一樣步數據 #exclude=test/ #設置容許鏈接服務器的帳戶,帳戶能夠是系統中不存在的用戶 auth users=zhangsan,wangwu #設置密碼驗證文件名稱,注意該文件的權限要求爲只讀,建議權限爲600,僅在設置auth users參數後有效 secrets file=/etc/rsyncd.secrets #設置容許哪些主機能夠同步數據,能夠是單個IP,也能夠是網段,多個IP與網段之間使用空格分隔 hosts allow=192.168.5.0/255.255.255.0 #設置拒絕全部(除hosts allow定義的主機外) hosts deny=* #客戶端請求顯示模塊列表時,本模塊名稱是否顯示,默認爲true list=false

接下來,經過echo的方式建立密碼文件/etc/rsyncd.secrets,在該文件中輸入兩個帳戶:zhangsan帳戶的密碼是123,wangwu帳戶的密碼是456。須要注意的是,密碼文件不能夠對全部的人開放可讀權限,爲了安全,建議設置權限爲600。建立服務器提示信息文件並向該文件中導入歡迎詞。

echo "zhangsan:123" > /etc/rsyncd.secrets

echo "wangwu:456" >> /etc/rsyncd.secrets

chmod 600 /etc/rsyncd.secrets

echo "Welcome to access" > /etc/rsyncd.motd

systemctl restart rsyncd

客戶端同步數據
在客戶端主機中一樣是使用rsync命令進行初始化數據傳輸,使用一樣的程序。

yum install rsync

rsync -vzrtopg --progress zhangsan@192.168.5.12::common /test

 

 

rsync命令的描述和用法以下。

描述:一個快速、多功能的遠程(或本地)數據複製工具。

用法:下表較全面地介紹了rsync的語法格式,SRC表示源路徑,DEST表示目標路徑。

本地複製

rsync [選項] SRC... [DEST]

經過遠程shell複製
下載數據

rsync [選項] [USER@]HOST:SRC…[DEST]

上傳數據

rsync [選項] SRC... [USER@]HOST:DEST

經過rsync遠程複製
下載數據

Rsync [選項] [USER@]HOST::SRC…[DEST]

Rsync [選項]rsync://[USER@]HOST[:PORT]/SRC…[DEST]

上傳數據

Rsync [選項]SRC…[USER@]HOST::DEST

Rsync [選項]SRC...rsync://[USER@]HOST[:PORT]/DEST

選項:-v,--verbose    顯示詳細信息

   -q,--quiet      靜默模式,無錯誤信息

   -a,--archive      歸檔模式,主要保留文件屬性,等同於-rlptgoD

   -r,--recursive      遞歸

   -b,--backup      若是目標路徑已經存在同名文件,將舊的文件重命名爲~filename,可使用--suffix指定不一樣的備份前綴。

   --back-dir      將備份文件保存至指定目錄

   --suffix      指定備份文件前綴

   -u,--update    若是目標地址中的文件比將要下載的文件新,則不執行同步,也就是說,不會用舊的文件覆蓋新的文件。

   -l,--links      保留符號連接

   -p,--perms    保留文件權限屬性

   -H,--hard-links    保留硬連接

   -A,--acls    保留ACL權限

   -X,--xattrs    保留文件附加屬性

   -o,--owner      保留文件全部者屬性

   -g,--group      保留文件所屬組屬性

   --devices      保留設備文件

   --specials      保留特殊文件

   -D          等同於-devices-specials

   -t        保留修改時間屬性

   -W,--whole-file      不作增量檢查,直接複製所有文件

   -e,--rsh=COMMAND    指定遠程shell

   --existing      僅同步目標路徑中已經有的文件,不下載源路徑下新的文件

   --delete        刪除那些僅在目標路徑中存在的文件(源路徑中不存在)

   -z,--compress      傳輸過程當中對數據進行壓縮

   --include=PATTERN    匹配不排除的文件

   --exclude=PATTERN    匹配須要排除的文件

   --progress      顯示數據傳輸的進度信息

   --partial      保留因故障未傳輸完成的文件

   -P      等同於--progress-partial

   --password-file=FILE      指定密碼文件,將密碼寫入文件,實現非交互式數據同步

   --list-only      僅列出服務器模塊列表,須要rsync 服務器設置list=true

相關文章
相關標籤/搜索