rsync安裝
什么是rsync
首先,檢查rsync是否安裝,如果沒(méi)有需要手動(dòng)安裝。
# rpm -qa|grep rsync #檢查是否安裝過(guò)rsync,whereis rsync也可以
# yum install rsync #如果未安裝,使用yum安裝rsync
創(chuàng)建rsyncd服務(wù)的配置文件,默認(rèn)安裝后,在/etc目錄下,并不存在rsyncd目錄,需要手動(dòng)創(chuàng)建配置文件目錄。
# mkdir /etc/rsyncd
在/etc/rsyncd目錄下創(chuàng)建如下文件
# touch /etc/rsyncd/rsyncd.conf #主配置文件
# touch /etc/rsyncd/rsyncd.secrets #用戶名密碼文件,一組用戶一行,用戶名和密碼使用 : 分割
# chmod 0600 /etc/rsyncd/rsyncd.secrets #rsyncd服務(wù)的密碼文件權(quán)限必須是600
# touch /etc/rsyncd/rsyncd.motd #非必須,連接上rsyncd顯示的歡迎信息,此文件可不創(chuàng)建
編輯主配置文件 rsyncd.conf
######################################################################################################
# ******進(jìn)程相關(guān)全局配置******
######################################################################################################
# = 后面的值可根據(jù)自己的實(shí)際情況更改
# pid file 守護(hù)進(jìn)程pid文件
# port 守護(hù)進(jìn)程監(jiān)聽端口,可更改,由xinetd允許rsyncd時(shí)忽略此參數(shù)
# address 守護(hù)進(jìn)程監(jiān)聽的本機(jī)ip,由xinetd允許rsyncd時(shí)忽略此參數(shù)
pid file = /usr/local/var/run/rsyncd.pid
port = 873
address = 192.168.44.13
#模塊驗(yàn)證密碼文件
secrets file=/etc/rsyncd/rsyncd.secrets
#rsyncd 守護(hù)進(jìn)程運(yùn)行系統(tǒng)用戶全局配置,也可在具體的塊中獨(dú)立配置,
uid = root
gid = root
#允許 chroot,提升安全性,客戶端連接模塊,首先chroot到模塊path參數(shù)指定的目錄下
#chroot為yes時(shí)必須使用root權(quán)限,且不能備份path路徑外的鏈接文件
use chroot = yes
#只讀
read only = no
#只寫
write only = no
#允許訪問(wèn)rsyncd服務(wù)的ip,ip端或者單獨(dú)ip之間使用空格隔開
hosts allow = 192.168.44.12 192.168.44.11
#不允許訪問(wèn)rsyncd服務(wù)的ip,*是全部(不涵蓋在hosts allow中聲明的ip,注意和hosts allow的先后順序)
hosts deny = *
#客戶端最大連接數(shù)
max connections = 5
#歡迎文件路徑,可選的
#motd file = /etc/rsyncd/rsyncd.motd
#日志相關(guān)
# log file 指定rsync發(fā)送消息日志文件,而不是發(fā)送給syslog,如果不填這個(gè)參數(shù)默認(rèn)發(fā)送給syslog
# transfer logging 是否記錄傳輸文件日志
# log format 日志文件格式,格式參數(shù)請(qǐng)google
# syslog facility rsync發(fā)送消息給syslog時(shí)的消息級(jí)別,
# timeout連接超時(shí)時(shí)間
log file = /usr/local/logs/rsyncd.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
######################################################################################################
# ******模塊配置(多個(gè))******
######################################################################################################
#模塊 模塊名稱必須使用[]環(huán)繞,比如要訪問(wèn)mysqlData,則地址應(yīng)該是mysqlDatauser@192.168.1.2::mysqlData
[mysqlData]
#模塊根目錄,必須指定
path=/home/mysql201608/
#是否允許列出模塊里的內(nèi)容
list=yes
#忽略錯(cuò)誤
ignore errors
#模塊驗(yàn)證用戶名稱,可使用空格或者逗號(hào)隔開多個(gè)用戶名
auth users = phper1021
#注釋
comment = some description about this moudle
#排除目錄,多個(gè)之間使用空格隔開
exclude = test1/ test2/
[codeTmp]
path = /tmp/code
list=no
auth users = lamper1021
編輯密碼文件 rsyncd.secrets
#格式 用戶名:口令,該用戶不要求是系統(tǒng)用戶
#注意:該密碼文件里面每行不要有空格,不然同步的時(shí)候一直報(bào)錯(cuò)auth failed on module
phper1021:123456
lamper1021:123456
啟動(dòng)rsync服務(wù)
rsync服務(wù)器啟動(dòng)方式
- rsync服務(wù)器負(fù)載比較高,則使用獨(dú)立啟動(dòng)模式
- rsync服務(wù)器負(fù)責(zé)較低,使用xinetd運(yùn)行方式
獨(dú)立啟動(dòng)模式
# /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf #默認(rèn)配置文件是/etc/rsyncd.conf,所以需要顯式的指定配置文件
# nohup /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf #假設(shè)使用putty,xshell終端操作,保證終端斷開進(jìn)程仍然執(zhí)行
#為了保證開機(jī)時(shí)自動(dòng)啟動(dòng),需要手動(dòng)加上面的命令(/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf)加入 /etc/rc.local 文件中
#如果服務(wù)器開啟了防火墻,必須保證端口能穿過(guò)防火墻
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
xinetd運(yùn)行方式
#xinetd的rsync配置文件是/etc/xinetd.d/rsync,需要編輯此文件修改一個(gè)參數(shù),顯式的指定rsyncd服務(wù)的配置文件
# vi /etc/xinetd.d/rsync
# server_args = --daemon --config=/etc/rsyncd/rsyncd.conf
# chkconfig rsync on
# service xinetd restart
#如果執(zhí)行 service xinetd restart 發(fā)現(xiàn) xinetd: unrecognized service 則未安裝xinetd服務(wù)
#執(zhí)行 yum install xinetd 安裝 xinetd服務(wù)
#安裝之后啟動(dòng) xinetd服務(wù)(service xinetd start)
查看rsync服務(wù)是否啟動(dòng)
netstat -an | grep 873
rsync客戶端
# 安裝客戶端
# yum -y install rsync
# 同步命令
# -a 參數(shù),相當(dāng)于-rlptgoD
# -r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有權(quán)限
# -t 保持文件原有時(shí)間;-g 保持文#件原有用戶組;-o 保持文件原有屬主;-D 相當(dāng)于塊設(shè)備文件
# -z 傳輸時(shí)壓縮;
# -P 傳輸進(jìn)度;
# -v 傳輸時(shí)的進(jìn)度等信息,和-P有點(diǎn)關(guān)系,自己試試。可以看文檔;
測(cè)試
# 登錄192.168.44.12進(jìn)程同步操作
# rsync -avzP phper1021@192.168.44.13::mysqlData /tmp/test
# 客戶端數(shù)據(jù)和服務(wù)器端數(shù)據(jù)保持一致,會(huì)刪除在客戶端目錄里但是不在服務(wù)器模塊里的文件(夾)
# rsync -avzP --delete phper1021@192.168.44.13::mysqlData /tmp/test
# 指定傳輸時(shí)候的密碼文件,密碼文件權(quán)限 600
# vi /tmp/phper1021.password #輸入密碼
# chmod 600 /tmp/phper1021.password
# rsync -avzP --delete --password-file=/tmp/phper1021.password phper1021@192.168.44.13::mysqlData /tmp/test