Rsync CentOS 7 下安装
在CentOS 7下安装 Rsync
首先,检查rsync是否安装,如果没有需要手动安装。
# rpm -qa|grep rsync #检查是否安装过rsync,whereis rsync也可以
# yum install -y rsync #如果未安装,使用yum安装rsync
创建rsyncd服务的配置文件,默认安装后,在/etc目录下,并不存在rsyncd目录,需要手动创建配置文件目录。
# mkdir /etc/rsyncd
在/etc/rsyncd目录下创建如下文件
# touch /etc/rsyncd/rsyncd.conf #主配置文件
# touch /etc/rsyncd/rsyncd.secrets #用户名密码文件,一组用户一行,用户名和密码使用 : 分割
# chmod 0600 /etc/rsyncd/rsyncd.secrets #rsyncd服务的密码文件权限必须是600
# touch /etc/rsyncd/rsyncd.motd #非必须,连接上rsyncd显示的欢迎信息,此文件可不创建
编辑主配置文件 rsyncd.conf
####################################################
# ******进程相关全局配置******
####################################################
# = 后面的值可根据自己的实际情况更改
# pid file 守护进程pid文件
# port 守护进程监听端口,可更改,由xinetd允许rsyncd时忽略此参数
# address 守护进程监听的本机ip,由xinetd允许rsyncd时忽略此参数
pid file = /usr/local/var/run/rsyncd.pid
port = 873
address = 192.168.44.13
#模块验证密码文件
secrets file=/etc/rsyncd/rsyncd.secrets
#rsyncd 守护进程运行系统用户全局配置,也可在具体的块中独立配置,
uid = root
gid = root
#允许 chroot,提升安全性,客户端连接模块,首先chroot到模块path参数指定的目录下
#chroot为yes时必须使用root权限,且不能备份path路径外的链接文件
use chroot = yes
#只读
read only = no
#只写
write only = no
#允许访问rsyncd服务的ip,ip端或者单独ip之间使用空格隔开
hosts allow = 192.168.44.12 192.168.44.11
#不允许访问rsyncd服务的ip,*是全部(不涵盖在hosts allow中声明的ip,注意和hosts allow的先后顺序)
hosts deny = *
#客户端最大连接数
max connections = 5
#欢迎文件路径,可选的
#motd file = /etc/rsyncd/rsyncd.motd
#日志相关
# log file 指定rsync发送消息日志文件,而不是发送给syslog,如果不填这个参数默认发送给syslog
# transfer logging 是否记录传输文件日志
# log format 日志文件格式,格式参数请google
# syslog facility rsync发送消息给syslog时的消息级别,
# timeout连接超时时间
log file = /usr/local/logs/rsyncd.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
######################################################################################################
# ******模块配置(多个)******
######################################################################################################
#模块 模块名称必须使用[]环绕,比如要访问mysqlData,则地址应该是mysqlDatauser@192.168.1.2::mysqlData
[mysqlData]
#模块根目录,必须指定
path=/home/mysql201608/
#是否允许列出模块里的内容
list=yes
#忽略错误
ignore errors
#模块验证用户名称,可使用空格或者逗号隔开多个用户名
auth users = phper1021
#注释
comment = some description about this moudle
#排除目录,多个之间使用空格隔开
exclude = test1/ test2/
[codeTmp]
path = /tmp/code
list=no
auth users = lamper1021
编辑密码文件 rsyncd.secrets
#格式 用户名:口令,该用户不要求是系统用户
#注意:该密码文件里面每行不要有空格,不然同步的时候一直报错auth failed on module
phper1021:123456
lamper1021:123456
启动rsync服务
rsync服务器启动方式
rsync服务器负载比较高,则使用独立启动模式
rsync服务器负责较低,使用xinetd运行方式
独立启动模式
# /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf #默认配置文件是/etc/rsyncd.conf,所以需要显式的指定配置文件
# nohup /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf #假设使用putty,xshell终端操作,保证终端断开进程仍然执行
#为了保证开机时自动启动,需要手动加上面的命令(/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf)加入 /etc/rc.local 文件中
#如果服务器开启了防火墙,必须保证端口能穿过防火墙
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
xinetd运行方式
#xinetd的rsync配置文件是/etc/xinetd.d/rsync,需要编辑此文件修改一个参数,显式的指定rsyncd服务的配置文件
# vi /etc/xinetd.d/rsync
# server_args = --daemon --config=/etc/rsyncd/rsyncd.conf
# chkconfig rsync on
# service xinetd restart
#如果执行 service xinetd restart 发现 xinetd: unrecognized service 则未安装xinetd服务
#执行 yum install xinetd 安装 xinetd服务
#安装之后启动 xinetd服务(service xinetd start)
查看rsync服务是否启动
netstat -an | grep 873
rsync客户端
# 安装客户端
# yum -y install rsync
# 同步命令
# -a 参数,相当于-rlptgoD
# -r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限
# -t 保持文件原有时间;-g 保持文#件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件
# -z 传输时压缩;
# -P 传输进度;
# -v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
测试
# 登录192.168.44.12进程同步操作
# rsync -avzP phper1021@192.168.44.13::mysqlData /tmp/test
# 客户端数据和服务器端数据保持一致,会删除在客户端目录里但是不在服务器模块里的文件(夹)
# rsync -avzP --delete phper1021@192.168.44.13::mysqlData /tmp/test
# 指定传输时候的密码文件,密码文件权限 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