我自己最近在学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 [email protected]::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 [email protected]::data /data
*想要实时备份那是肯定不行的,要定时做备份同步的还是可以的,但是怎么定时呢,请听下回讲解cron任务计划
问题解决办法:
@ERROR: invalid uid noboby
把配置文件中的改成
uid = 0
gid = 0
@ERROR: auth failed on module data
这种时候就是你配置的模块有问题了
首先看你的rsyncd.secrets文件是不是600权限,如果不是在找找别的原因
chmod 600 rsyncd.secrets