1. 程式人生 > >Ubuntu16.04下安裝配置rsync

Ubuntu16.04下安裝配置rsync

前言

Rsync(remote synchronize) 是一個遠端資料同步工具,可以使用“Rsync演算法”同步本地和遠端主機之間的檔案。Rsync的好處是隻同步兩個檔案不同的部分,相同的部分不在傳遞。類似於增量備份,這使的在伺服器傳遞備份檔案或者同步檔案,比起scp工具要省好多時間。

環境說明

伺服器:
ubuntu16.04
172.16.29.10
客戶端:
ubuntu16.04
172.16.29.11

一:伺服器配置

1.ubuntu 16.04預設已安裝rsync,rsync服務預設不是啟動的,我們要修改rsync檔案。

sudo vim /etc/default/rsync

修改配置項:

RSYNC_ENABLE=true   #false改true

2.建立配置檔案

將rsyncd.conf copy到/etc目錄下

sudo cp /usr/share/doc/rsync/examples/rsyncd.conf /etc

開啟此配置檔案,自行配置。

sudo vi /etc/rsyncd.conf

其中path是需要同步的路徑,你可以暫時只對此項配置,然後即可測試。

3.啟動rsync

sudo /etc/init.d/rsync start

二:客戶端

客戶端不需要進行特殊的配置,直接同步即可

rsync -vzrtopg --progress  172.16
.29.10::ftp ./ #./為當前目錄,在服務端touch一個檔案,同步後就會出現, #當然你也可以指定一個位置比如/databk,需注意所建立的許可權!

如果你的配置檔案中配置了auth users,客戶端同步檔案命令需指定賬號,如下:
rsync -vzrtopg –progress 賬號@172.16.29.10::ftp ./

三:附配置檔案說明

# sample rsyncd.conf configuration file

# GLOBAL OPTIONS

#motd file=/etc/motd #登入歡迎資訊
#log file=/var/log/rsyncd #日誌檔案
# for pid file, do not use /var/run/rsync.pid if # you are going to run rsync out of the init.d script. pid file=/var/run/rsyncd.pid #指定rsync傳送日誌訊息給syslog時的訊息級別,常見的訊息級別是:uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, user, uucp, local0, local1, local2, local3,local4, local5, local6和local7。預設值是daemon。 #syslog facility=daemon #自定義tcp選項,預設是關閉的 #socket options= #以下是模組資訊,我們可以建立多個模組 # MODULE OPTIONS [ftp] comment = public archive #模組描述 path = /var/www/pub #需要同步的路徑 use chroot = yes #預設是yes|true,如果為true,那麼在rsync在傳輸檔案以前首先chroot到path引數指定的目錄下。這樣做的原因是實現額外的安全防護,但是缺點是需要root許可權,並且不能備份指向外部的符號連線指向的目錄檔案。 # max connections=10 #最大連線數 lock file = /var/lock/rsyncd #指定支援max connections引數的鎖檔案。 # the default for read only is yes... read only = yes #只讀選項 list = yes #客戶請求時可用模組時是否列出該模組 uid = nobody #設定該模組傳輸檔案時守護程序應該具有的uid gid = nogroup #設定該模組傳輸檔案時守護程序應具有的gid,此項與uid配合可以確定檔案的訪問許可權 # exclude = #用來指定多個由空格隔開的多個模式列表,並將其新增到exclude列表中。這等同於在客戶端命令中使用--exclude來指定模式,不過配置檔案中指定的exlude模式不會傳遞給客戶端,而僅僅應用於伺服器。一個模組只能指定一個exlude選項,但是可以在模式前面使用"-"和"+"來指定是exclude還是include #這個我的理解是排除目錄中不需同步的檔案 # exclude from = #可以指定一個包含exclude模式定義的檔名 # include = #與exclude相似 # include from = #可以指定一個包含include模式定義的檔名 # auth users = #該選項指定由空格或逗號分隔的使用者名稱列表,只有這些使用者才允許連線該模組。這裡的使用者和系統使用者沒有任何關係。如果"auth users"被設定,那麼客戶端發出對該模組的連線請求以後會被rsync請求challenged進行驗證身份這裡使用的 challenge/response認證協議。使用者的名和密碼以明文方式存放在"secrets file"選項指定的檔案中。預設情況下無需密碼就可以連線模組(也就是匿名方式) # secrets file = /etc/rsyncd.secrets #該檔案每行包含一個username:password對,以明文方式儲存,只有在auth users被定義時,此選項才生效。同時我們需要將此檔案許可權設定為0600 strict modes = yes #該選項指定是否監測密碼檔案的許可權,如果該選項值為true那麼密碼檔案只能被rsync伺服器執行身份的使用者訪問,其他任何使用者不可以訪問該檔案。預設值為true # hosts allow = #允許的主機 # hosts deny = #拒絕訪問的主機 ignore errors = no #設定rsync伺服器在執行delete操作時是否忽略I/O錯誤 ignore nonreadable = yes #設定rysnc伺服器忽略那些沒有訪問檔案許可權的使用者 transfer logging = no #使rsync伺服器使用ftp格式的檔案來記錄下載和上載操作在自己單獨的日誌中 # log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes. #設定日誌格式 timeout = 600 #超時設定(秒) refuse options = checksum dry-run #定義一些不允許客戶對該模組使用的命令選項列表 dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz #告訴rysnc那些檔案在傳輸前不用壓縮,預設已設定壓縮包不再進行壓縮

日誌格式選項列表:

%h: 遠端主機名
%a: 遠端IP地址
%l: 檔案長度字元數
%p: 該次rsync會話的程序id
%o: 操作型別:"send""recv"、”del.”
%f: 檔名
%P: 模組路徑
%m: 模組名
%t: 當前時間
%u: 認證的使用者名稱(匿名時是null)
%b: 實際傳輸的位元組數
%c: 當傳送檔案時,該欄位記錄該檔案的校驗碼