Centos+Sersync+inotify实时同步数据文件(全网备份方案 一)

2016年2月18日17:49:41 发表评论 2,567 views
摘要

Centos+Sersync+inotify实时同步数据文件,保证数据可用性的同时,还能提高性能。

广告也精彩

公司有需要做线上设备的主备数据实时同步,其中有些注意事项,详细信息如下:

1,Rsync:873

2,注意需要关闭iptables

3,实时查看sersync进程及rsync进程 是否正常运行

4,使用Sersync自动同步之前 使用rsync手动同步测试

5,rsync  version 3.0.6 system:Centos 2.6.32-279.el6.x86_64

6,Master:192.168.1.202 ,Slave:192.168.1.206

一、RSYNC Client Configuration

1,检测系统环境是否支持

[root@Nagios inotify-tools-3.14]# uname -m
x86_64
[root@Nagios inotify-tools-3.14]# uname -r
2.6.32-279.el6.x86_64

rsync 语法解释

rsync -avz  -e 'ssh -p 22'   --exclude-from  /server/scripts/exclude.txt --delete   /root/fuqin/  root@192.168.15.142:/root/fuqin/backup-143

# -p 指定ssh端口
# --exclude-from 排除文件中列出的内容
# --delete 删除也会同步
# -n 不执行,只是看下执行过程

2,创建rsyncd.conf 配置文件,如果存在需要CP进行备份。

sync server
#created by qyt 20160218
#rsyncd.conf start#
uid = root
gid = root
user chroot = no
max connections = 2000
timeout = 600
pod file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 192.168.1.202/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
###############################################
[cfgs]
comment = www by qyt 20160218
path = /usr/local/nagios/etc/cfgs
#################################################3
[objects]
comment = bbs by qyt 20160218
path = /usr/local/nagios/etc/objects
#################################################3
EOF

3,创建相关待同步目录

mkdir -p /data0/www/bbs/ /data0/www/www/ /data0/www/blog/
#(同时创建多个目录,也就是需要同步的目录,如果目录存在请忽略)
#推送用户要有对被同步目录的写入更新的权限

3,认证

配置Password ,自行定义,[[ 但需要与/etc/rsyncd.conf 配置文件中secrets= * 定义内容相同  ]]

echo "rsync_backup:123" > /etc/rsync.password
chmod 600 /etc/rsync.password
#for check
cat /etc/rsync.password
ll /etc/rsync.password

4,配置好后,使用如下命令,开启rsync守护进程

rsync --daemon
ps -ef|grep rsync
netstat -lnt|grep 873
lsof -i :873
[root@Nagios /etc]$ps -ef|grep rsync
root      2048     1  0 17:52 ?        00:00:00 /usr/bin/rsync --daemon
root      3544  2237  0 19:24 pts/0    00:00:00 grep rsync
[root@Nagios /etc]$netstat -lnt|grep 873
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      
tcp        0      0 :::873                      :::*

5,设置开机自启动

echo "##rsync service daemon by qyt 20160218" >>/etc/rc.local
echo "/usr/local/bin/rsync--daemon" >>/etc/rc.local
grep daemon /etc/rc.local

6,重启服务

pkill rsync
rsync --daemon
ps -ef|grep rsync

二、Rsync Master Configuration

1,手动测试同步rsync(测试之前停掉防火墙 否则会引起失败)

2,在Master上配置rsync权限,只需要配置密码就OK了。

echo "123" > /etc/rsync.password
chmod 600 /etc/rsync.password
#for check
cat /etc/rsync.password
ll /etc/rsync.password

3,创建测试文件

touch /usr/local/nagios/etc/cfgs/cfgs.log /usr/local/nagios/etc/objects/objects.log
tree /usr/local/nagios/etc/
├── cfgs
│   ├── cfgs.log
├── objects
│   ├── objects.log

3,执行同步,手动执行

rsync -avzP /usr/local/nagios/etc/cfgs/ rsync_backup@192.168.1.206::cfgs/ --password-file=/etc/rsync.password

rsync -avzP /usr/local/nagios/etc/objects/ rsync_backup@192.168.1.206::objects/ --password-file=/etc/rsync.password

[root@Nagios etc]# rsync -avzP /usr/local/nagios/etc/cfgs/ rsync_backup@192.168.1.206::cfgs/ --password-file=/etc/rsync.password
sending incremental file list
./
cfgs.log
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=4/11)
sent 312 bytes  received 30 bytes  684.00 bytes/sec
total size is 87568  speedup is 256.05

4,然后去backup server(nagios02)上去验证,是否有同步过去的文件

[root@Nagios02 /usr/local/nagios/etc]$tree 
├── cfgs
│   ├── cfgs.log
├── objects
│   ├── objects.log 
成功

命令行执行案例

#  将152数据同步到184服务器
rsync -avz  -e 'ssh -p 5180' -n --delete    /home/tools/123/ root@184目标服务器IP:/home/tools/123

## -e 指定 ssh端口
## 注意前面/home/tools/123/ 这里必要要/ 如果最后没有/就是同步的目录,现在是同步目录下的问文件
## 后面是要同步的目标主机+目录
## -n 是打印将要变更的文件列表
## --delete 强制保持2变一样,如果目标目录出现不同的或者原服务器不存在的文件或目录,立即删除。


Sersync Configuration 在后续文章中介绍。

Centos+Sersync+inotify实时同步数据文件(二)

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
广告也精彩
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: