bash# 检查是否安装过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
CentOS 默认以xinetd模式运行rsync,rsync的xinetd配置文件是/etc/xinetd.d/rsync
若是配置rsync以xinetd模式运行,执行以下命令centos
bashchkconfig 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服务器启动时的参数安全
若是使用独立运行模式,则执行以下命令bash
bash/usr/bin/rsync --daemon #编辑 /etc/rc.local文件 加入 /usr/bin/rsync --daemon 保证每次开机启动都会自动启动rsync服务
bash# 建立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
配置文件语法介绍服务器
全局参数([模块名称]以外的配置均为全局配置)并发
模块参数
模块参数主要用于定义 rsync 服务器哪一个目录要被同步。模块声明的格式必须为 [module] 形式,这个名字就是在 rsync 客户端看到的名字,相似于 Samba 服务器提供的共享名。而服务器真正同步的数据是经过 path 来指定的。能够根据本身的须要,来指定多个模块,模块中能够定义如下参数:socket
模块控制参数ui
模块认证参数操作系统
客户主机列表定义能够是如下形式:
单个IP地址 例如:192.168.0.1
整个网段 例如:192.168.0.0/24,192.168.0.0/255.255.255.0
可解析的单个主机名 例如:centos,centos.bsmart.cn
域内的全部主机 例如:.bsmart.cn
“”则表示全部。
多个列表项要用空格间隔。命令行
配置文件实例rest
bash# GLOBAL OPTIONS uid = root gid = root use chroot = no read only = yes #limit access to private LANs hosts allow=172.16.0.0/255.255.0.0 192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0 hosts deny=* max connections = 5 pid file = /var/run/rsyncd.pid secrets file = /etc/rsyncd/rsyncd.secrets #lock file = /var/run/rsync.lock #motd file = /etc/rsyncd/rsyncd.motd #This will give you a separate log file #log file = /var/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 [davidhome] path = /home/david/ list=yes ignore errors auth users = david comment = David home exclude = important/ [chinatmp] path = /tmp/china/ list=no ignore errors auth users = china comment = tmp_china
密码文件
shdavid:asdf #格式 用户名:口令 china:jk #该用户不要求是系统用户
查看rsync服务是否启动
netstat -an | grep 873
bash# 安装客户端 yum -y install rsync # 同步命令 # -a 参数,至关于-rlptgoD # -r 是递归 -l 是连接文件,意思是拷贝连接文件;-p 表示保持文件原有权限 # -t 保持文件原有时间;-g 保持文#件原有用户组;-o 保持文件原有属主;-D 至关于块设备文件 # -z 传输时压缩; # -P 传输进度; # -v 传输时的进度等信息,和-P有点关系,本身试试。能够看文档; # 同步 rsync -avzP david@172.16.1.135::davidhome /tmp/david/ # 客户端数据和服务器端数据保持一致 rsync -avzP --delete david@172.16.1.135::davidhome /tmp/david/ # 指定传输时候的密码文件,密码文件权限 600 rsync -avzP --delete --password-file=/tmp/rsync.password david@172.16.1.135::davidhome /tmp/david/