rsync安裝
# 檢查是否安裝過rsync, 如果已經安裝過需要卸載
rpm -qa|grep rsync
# 安裝了rsync 卸載
rpm -e rsync
# 下載最新rpm包(注意操作系統和位數的匹配)
# rsync的rpm包列表地址:http://pkgs.repoforge.org/rsync
wget http://pkgs.repoforge.org/rsync/rsync-3.1.1-1.el6.rfx.x86_64.rpm
# rpm包安裝
rpm -ivh rsync-3.1.1-1.el6.rfx.x86_64.rpm
# 雲安裝
yum install rsync
rsync服務端配置
啓動配置
- 選擇rsync服務器啓動方式
- rsync服務器負載比較高,則使用獨立啓動模式
- rsync服務器負責較低,使用xinetd運行方式
- 創建配置文件rsyncd.conf
- 對於非匿名方式訪問的rsync服務器創建配置口令(建議配置需要口令訪問)
CentOS 默認以xinetd模式運行rsync,rsync的xinetd配置文件是/etc/xinetd.d/rsync
如果配置rsync以xinetd模式運行,執行如下命令
chkconfig rsync on
service xinetd restart
# 如果執行 service xinetd restart 發現 xinetd: unrecognized service 則未安裝xinetd服務
# 執行 yum install xinetd 安裝 xinetd服務
# 安裝之後啓動 xinetd服務(service xinetd start)
編輯rsync的xinetd配置文件/etc/xinetd.d/rsync文件,修改參數 server_args = --daemon --config=/etc/rsyncd/rsyncd.conf
可以配置rsync服務器啓動時的參數
如果使用獨立運行模式,則執行如下命令
/usr/bin/rsync --daemon
#編輯 /etc/rc.local文件 加入 /usr/bin/rsync --daemon 保證每次開機啓動都會自動啓動rsync服務
配置文件
# 創建rsync服務目錄
mkdir /etc/rsyncd
# 創建配置文件
touch /etc/rsyncd/rsyncd.conf
# 創建密碼文件
touch /etc/rsyncd/rsyncd.passwd
#權限修改
chown root:root /etc/rsyncd/rsyncd.passwd
chmod 600 /etc/rsyncd/rsyncd.passwd
配置文件語法介紹
- 模塊
以[模塊名稱]開始 - 參數配置行
格式 name = value
其中 value的值可以是string(可以不使用引號)或者boolean(0/1,true/false,yes/no) - 以#開始是註釋行
- 以\是續行符
全局參數([模塊名稱]之外的配置均爲全局配置)
- address
在獨立運行時,用於指定的服務器運行的 IP 地址。由 xinetd 運行時將忽略此參數,使用命令行上的 –address 選項替代
默認值 本地所有IP - port
指定 rsync 守護進程監聽的端口號。 由 xinetd 運行時將忽略此參數,使用命令行上的–port 選項替代。
默認值是 873 - motd file
指定一個消息文件,當客戶連接服務器時該文件的內容顯示給客戶。
默認值無 - pid file
rsync 的守護進程將其 PID 寫入指定的文件。
默認值 無 - log file
指定 rsync 守護進程的日誌文件,而不將日誌發送給 syslog。
默認值 無 - syslog facility
指定 rsync 發送日誌消息給 syslog 時的消息級別
默認值 daemon - socket options
指定自定義 TCP 選項。
默認值無
模塊參數
模塊參數主要用於定義 rsync 服務器哪個目錄要被同步。模塊聲明的格式必須爲 [module] 形式,這個名字就是在 rsync 客戶端看到的名字,類似於 Samba 服務器提供的共享名。而服務器真正同步的數據是通過 path 來指定的。可以根據自己的需要,來指定多個模塊,模塊中可以定義以下參數:
- 基本模塊參數
- path
指定當前模塊在 rsync 服務器上的同步路徑,該參數是必須指定的 - comment
給模塊指定一個描述,該描述連同模塊名在客戶連接得到模塊列表時顯示給客戶
- path
-
模塊控制參數
- use chroot
若爲 true,則 rsync 在傳輸文件之前首先 chroot 到 path 參數所指定的目錄下。這樣做的原因是實現額外的安全防護,但是缺點是需要 root 權限,並且不能備份指向 path 外部的符號連接所指向的目錄文件。
默認值true - uid
指定該模塊以指定的 UID 傳輸文件。
默認值 nobody - gid
指定該模塊以指定的 GID 傳輸文件。
默認值 nobody - max connections
定該模塊的最大併發連接數量以保護服務器,超過限制的連接請求將被告知隨後再試。
默認值 0 不限制 - read only
指定是否允許客戶上傳文件。若爲 true 則不允許上傳;若爲 false 並且服務器目錄也具有讀寫權限則允許上傳。
默認值 true - write only
指定是否允許客戶下載文件。若爲 true 則不允許下載;若爲 false 並且服務器目錄也具有讀權限則允許下載。
默認值 false
- use chroot
-
模塊認證參數
- hosts allow
用一個主機列表指定哪些主機客戶允許連接該模塊。不匹配主機列表的主機將被拒絕
默認值 *
客戶主機列表定義可以是以下形式:
單個IP地址 例如:192.168.0.1
整個網段 例如:192.168.0.0/24,192.168.0.0/255.255.255.0
可解析的單個主機名 例如:centos,centos.bsmart.cn
域內的所有主機 例如:.bsmart.cn
“”則表示所有。
多個列表項要用空格間隔。- hosts deny
用一個主機列表指定哪些主機客戶不允許連接該模塊。
默認值 空 - auth users
指定由空格或逗號分隔的用戶名列表,只有這些用戶才允許連接該模塊。這裏的用戶和系統用戶沒有任何關係。用戶名和口令以明文方式存放在 secrets file 參數指定的文件中
默認匿名 - secrets file
指定一個 rsync 認證口令文件。只有在 auth users 被定義時,該文件才起作用。
默認值 空 - strict modes
指定是否監測口令文件的權限。若爲 true 則口令文件只能被 rsync 服務器運行身份的用戶訪問,其他任何用戶不可以訪問該文件。
默認值 true
> - rsync 認證口令文件的權限一定是 600,否則客戶端將不能連接服務器。 - rsync 認證口令文件中每一行指定一個 用戶名:口令 對,格式爲:username:passwd
- 一般來說口令最好不要超過8個字符。若您只配置匿名訪問的 rsync 服務器,則無需設置上述參數。
- hosts allow
配置文件實例
# GLOBAL OPTIONS
uid = root
gid = root
use chroot = no
read only = false
#limit access to private LANs
hosts allow=*
hosts deny=*
max connections = 5
pid file = /var/run/rsyncd.pid
secrets file = /etc/rsyncd/rsyncd.passwd
#lock file = /var/run/rsync.lock
#motd file = /etc/rsyncd/rsyncd.motd
#This will give you a separate log file
log file = /data/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
# MODULE OPTIONS
[uploadhome]
path = /data/home/upload
list=yes
ignore errors
auth users = lake
comment = lake home
密碼文件
lake:123456 #格式 用戶名:口令 #該用戶不要求是系統用戶
查看rsync服務是否啓動
netstat -an | grep 873
rsync 客戶端
# 安裝客戶端
yum -y install rsync
# 同步命令
# -a 參數,相當於-rlptgoD
# -r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有權限
# -t 保持文件原有時間;-g 保持文#件原有用戶組;-o 保持文件原有屬主;-D 相當於塊設備文件
# -z 傳輸時壓縮;
# -P 傳輸進度;
# -v 傳輸時的進度等信息,和-P有點關係,自己試試。可以看文檔;
# 同步
rsync -avzP lake@192.168.1.208::uploadhome /data/home/upload
# 客戶端數據和服務器端數據保持一致
rsync -avzP --delete
lake@192.168.1.208::uploadhome /data/home/upload
# 指定傳輸時候的密碼文件,密碼文件權限 600
rsync -avzP --delete --password-file=/etc/rsync.password lake@192.168.1.208::uploadhome /data/home/upload
rsync -avzP [email protected]::uploadhome /data/home/upload/rsync -avzP [email protected]::fbarun /data/home/run/fba_run/
rsync -avzP [email protected]::soft /data/home/soft/
-------------------------------------------------------------------------------------- 分割線 ---------------------------------------------------------------------------------------------
centos 7.2 下使用過如下配置
簡單配置
服務端安裝配置
yum -y install rsync
服務啓動
service rsyncd start
配置文件
vim /etc/rsyncd.conf
# /etc/rsyncd: configuration file for rsync daemon mode
# See rsyncd.conf man page for more options.
# configuration example:
secrets file = /etc/rsyncd.secrets
uid = nobody
gid = nobody
use chroot = yes
max connections = 5
pid file = /var/run/rsyncd.pid
# exclude = lost+found/
transfer logging = yes
timeout = 900
ignore nonreadable = yes
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
[h5run]
read only = no
path = /data/happyqp/release/
comment = server game release
auth users = lake
更改權限
chown nobody:nobody /data/happyqp/release/ -R
關於/etc/rsyncd.secrets
密碼文件(這個文件權限必須爲600)
在服務端設置:(冒號分開)
lake:123456
客戶端連接:
安裝
yum -y install rsync
客戶端配置密碼文件(這個文件權限必須爲600)如果不是,每次需要輸入密碼
關於/etc/rsyncd.secrets 密碼文件,和服務端不同,只要密碼。
123456
同步命令
rsync
-vzrtopg --progress --password-file=/etc/rsyncd.secrets /data/happyqp/release/h5_run [email protected]::h5run