Ubuntu16.04下安裝配置rsync
阿新 • • 發佈:2019-01-05
前言
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: 當傳送檔案時,該欄位記錄該檔案的校驗碼