配置环境:redhat 6.3
server A设置:
1. yum安装rsync-3.0.6-9.el6.i686。
#yum install -y rsync
2.建立rsync 同步目录/tmp/backup,此目录里面的内容将同步到远程备份服务器B上。
#mkdir /tmp/backup
3.建立密码文件,此文件用于存放rsync同步时使用的账号密码,格式为“用户名:密码”,该用户是与操做系统分离的,系统上不须要建立此用户。rsync的密码文件可以使用任意名称。
#vim /etc/rsyncd.pass
laya:123456
密码文件权限需修改成600,
#chmod 600 /etc/rsyncd.pass
#ll /etc/rsyncd.pass
-rw------- 1 root root 9 Apr 16 11:07 /etc/rsyncd.pass
4.建立rsync配置文件/etc/rsyncd.conf,默认是没有这个文件的,须要手工建立。rsync的配置文件使用模块化结构,包含全局参数和模块参数,全局参数是通用的配置。每一个模块表明着一个目录树的同步,模块定义从[]中的模块名开始,到下一个模块定义开始。
rsync.conf配置以下:
----------------------------------------------------------------------------------------
uid=root #该选项指定当该模块传输文件时守护进程应该具备的uid,默认值是“nobody”。
gid=root #该选项指定当该模块传输文件时守护进程应该具备的gid,默认值是“nobody”。
use chroot=no #不使用chroot。
max connections=4 #设置最大链接数,默认为0,即无限制。这里设置为4。
strict mode =yes #设置是否检查口令文件的权限。
pid file=/var/run/rsyncd.pid #指定rysnc进程的pid文件位置 。
lock file=/var/lock/rsync.lock #指定支持max connections的锁文件。
log file=/var/log/rsyncd.log #指定 rsync日志输出路径。
[test] #模块名,可以使用任意名称。
path=/tmp/backup #源目录路径。
comment=test rsync #模块描述。
ignore errors #出现I/O错误时可忽略。
read only=no #是否只读,设置为no时客户端可上传文件。
write only=no #设置为no 时客户端可下载文件。
hosts allow=192.168.1.62 #容许访问的主机。
hosts deny=* #拒绝访问的主机,*表示全部主机。
list=false #设置客户端请求时是否列出该模块,false为隐藏。
auth users=laya #设置链接时使用的用户,即密码文件里面定义的用户名。
secrets file=/etc/rsyncd.pass #指定存放密码文件的位置 。
----------------------------------------------------------------------------------------
5.启动rsync守护进程
#/usr/local/bin/rsync --daemon
rsync的默认端口为873,经过命令netstat –lnpt能够查看是否已正常启动。
vim
#netstat -lnpt
tcp 0 0 :::873 :::* LISTEN 2158/rs
----------------------------------------------------------------------------------------
client B 配置
1. 安装rsync。
#yum install -y rsync
2. 配置密码文件,里面写入与服务器A上相同的密码,但不须要再写账号名。
#vim /etc/rsyncd.pass
123456
3. 建立备份的文件夹
mkdir /backup
4. 同步操做,使用以下命令从服务器A下载文件。
#/usr/local/bin/rsync -vzrtopgu --delete --progress --exclude “*.log” laya@192.168.1.37::test /backup --password-file=/etc/rsyncd.pass
该命令的解释以下:
-v 即--verbose #显示传输的详细信息。
-z 即--compress #传输时对文件进行压缩。
-r 即--recursive #对子目录进行递归处理。
-t 即--times #保持文件的时间信息。
-o 即--owner #用来保持文件的属主信息。
-p 即--perms #保持文件权限。
-g 即--group #保持文件属组信息。
--delete #以rsync服务器为基准保持数据同步,若是服务器删除了某一文件,客户端也会删掉。
--progress #显示出详细的进度状况。
--exclude #用于排除不须要的文件类型。
laya@192.168.1.37::test #指定备份的服务器和相关的模块,laya为服务器A上面设置的
rsync同步账号,注意服务器IP与模块名之间为双冒号“::”。
/backup #指定备份的文件在客户端B上的存放位置 。
--password-file=/etc/rsyncd.pass #指定客户端存放密码文件的位置。
如今,咱们能够查看备份目录/backup,看到已经与A服务器上的/tmp/backup完成了同步,同时排除了咱们不想要同步的文件。
5.若是咱们须要定时同步,如三小时同步一次,只需把该命令加到计划任务便可。
* 3 * * * /usr/local/bin/rsync -vzrtopgu --delete --progress --exclude “*.log” laya@192.168.1.37::test /backup --password-file=/etc/rsyncd.pass
至此,rsync的同步设置完成。
服务器