首页 > 代码库 > rsync服务教程

rsync服务教程


我自己最近在学MYSQL所以用到这个,我试试能不能做主从备份,只是玩,中间又不能做到实时备份,也就是试是练习rsync服务的安装与操作。


首先我两台机器一台CentOS7和一台6  两台都装的是mysql5.5   准备rsync服务端的地址是172.16.251.22  客户端的地址是172.16.251.81


首先系统里都自动装了rsync 


#vim /etc/rsyncd/rsyncd.conf

pid file = /var/run/rsyncd.pid//pid文件创建的位置

port = 873//端口号,默认的就是873

address = 172.16.251.22 //服务器地址

uid = noboby

gid = noboby//服务器端传输文件时,用哪个用户和用户组来执行,默认为noboby

use chroot = no //用chroot,在传输文件之前,服务器守护程序在将chroot 到文件系统中的目录中,这样做的好处是可能保护系统被安装漏洞侵袭的可能。缺点是需要超级用户权限。另外对符号链接文件,将会排除在外。也就是说,你在 rsync服务器上,如果有符号链接,你在备份服务器上运行客户端的同步数据时,只会把符号链接名同步下来,并不会同步符号链接的内容;这个需要自己来尝 试

read only = yes //只准允用户从get文件

list = no //数据不列出来

hosts allow = 172.16.251.81//只准允哪些个ip来获得种子^ ^

motd file = /etc/rsyncd/rsyncd.motd//定义服务器信息,是需要你自己写的,创建这个文件,在写

 

模块定义

[data]

path = /data///文件目录所在位置

auth users = root //认证用户,必须在服务器有这个用户

secrets file = /etc/rsyncd/rsyncd.secrets //密码文件

list=yes   注:list 意思是把rsync 服务器上提供同步数据的目录在服务器上模块是否显示列出来。默认是yes 。如果你不想列出来,就no ;如果是no是比较安全的,至少别人不知道你的服务器上提供了哪些目录。你自己知道就行了;

ignore errors //忽略IO操作

comment = linuxsir home  data  注:注释可以自己定义,写什么都行,写点相关的内容就行;

exclude =   beinan/   samba/     

注:exclude 是排除的意思,也就是说,要把/home目录下的beinan和samba 排除在外; beinan/和samba/目录之间有空格分开 ;


注:这里的rsyncd.conf、rsyncd.secrets、rsyncd.mote都是自己手动创建的

密码文件都必须小心存放,直接修改权限,只允许管理员才能读写chmod 600 rsyncd.secrets


启动服务

/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf ///usr/bin/rsync是软件默认安装位置

echo "/usr/bin/rsync --daemon --config=/etc.rsyncd/rsyncd.conf"  >> /etc/rc.d/rc.local //开机自动执行,出就是启动服务了


服务器端的iptables要允许873端口通过,所以你要设置:

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT


客户端从服务端那获取数据的时候到了:

格式如下:

rsync -avzP root@172.16.251.22::data /data //从服务器那获得data模块定义的资源放到客户端的/data目录下

#注意,这里cms前面是双冒号,指定是通过daemon的方式运行rsync,若是单个冒号,则说明是基本的rsync客户端指令操作方式


*这里第次同步都是需要输入密码的,要想不输入密码也是可以的,请往下看:

首先你要在客户端创建个密码文件,但是这个文件与服务端的格式不一样:

服务器密码文件 /etc/rsyncd.secrets 格式为: username:password 客服端密码文件 password.rsync 格式为:password


操作:

vim /password.rsync

mysql //这个就是我对端服务器要调用用户来执行帐号的密码


rsync -avz --password-file=/password.rsync root@172.16.251.22::data /data


*想要实时备份那是肯定不行的,要定时做备份同步的还是可以的,但是怎么定时呢,请听下回讲解cron任务计划


问题解决办法:


@ERROR: invalid uid noboby

把配置文件中的改成

uid = 0

gid = 0


@ERROR: auth failed on module data

这种时候就是你配置的模块有问题了

首先看你的rsyncd.secrets文件是不是600权限,如果不是在找找别的原因

chmod 600 rsyncd.secrets


本文出自 “10958002” 博客,请务必保留此出处http://10968002.blog.51cto.com/10958002/1912940

rsync服务教程