全国录音项目集中部署方案及技术实施--通过rsync进行同步实践

1、项目背景

  目前全国呼叫中心服务器分布式部署,分别部署在全国28家机构数据机房,录音数据及通过记录分布式部署,没有备份机制。

  系统架构:CentOS 6.5 X86_64

2、项目架构

  

 

3、实施方案

  采用 cron+rsync 技术进行数据同步,通过rsync限速保证线上正常业务的运行。

4、技术实施

  4.1  检查rsync版本,如果没有安装

rsync --version   #检查rsync版本
yum install rsync -y

 

  4.2  在备份服务器上搭建rsync daeman

      

编辑rsyncd.conf文件
vim /etc/rsyncd.conf #rsync_config_______________start uid = rsync #用户,远端命令使用rsync访问共享目录 gid = rsync #用户组 use chroot = no #安全相关 max connections = 200 #最大连接数 timeout = 300 #超时时间 pid file = /var/run/rsyncd.pid #进程对应的进程号文件 lock file = /var/run/rsync.lock #锁文件 log file = /var/log/rsyncd.log #日志文件 [HNBackup] #模块名称 path = /HNbackup #服务器端提供访问的目录 ignore errors #忽略错误 read only = false #可写 list false #不能列表 hosts allow = 192.168.0.0/16 #允许访问网段 # hosts deny = 0.0.0.0/32 #不允许访问网段 auth users = rsync_backup #虚拟用户 secrets file = /etc/rsync.password #虚拟用户对应的密码密码文件 #rsync_config_________________end

添加rsync用户
useradd rsync -s /sbin/nologin -M
tail -l /etc/passwd

启动服务
rsync --daemon
ps -ef | grep rsync|grep -v grep

创建访问目录
mkdir /HNBackup
chown rsync.rsync /HNBackup/
ls -ld /HNBackup

创建密码文件
vim /etc/rsync.password
rsync_backup:cbc123456.

cat /etc/rsync.password

chmod 600 /etc/rsync.password 
ls /etc/rsync.password -l
确认服务启动   
lsof -i :873
netstat -lntup|grep 873

关闭防火墙
/etc/init.d/iptables stop
chkconfig iptables off

  4.3  客户端上配置rsync服务

 

查看客户端是否安装rsync
rsync --version
rpm -qa rsync
创建密码文件
vim /etc/rsync.password
cbc123456.

cat /etc/rsync.password

chmod 600 /etc/rsync.password
ls -l /etc/rsync.password

测试同步
mkdir backup
cd backup/
vim test.txt
ls
方法一:
rsync -avz /backup/ rsync_backup@192.168.174.128::HNBackup/ --password-file=/etc/rsync.password
方法二:
rsync -avz /backup/ rsync://rsync_backup@192.168.174.128/HNBackup/ --password-file=/etc/rsync.password

限速测试
dd if=/dev/zero of=test1 bs=1M count=128
rsync -avz --bwlimit=10 /backup/ rsync://rsync_backup@192.168.174.128/HNBackup/ --password-file=/etc/rsync.password

  4.4  编写shell脚本,添加同步锁功能

#!/bin/sh
 flock -xn /var/run/rsync.lock -c  'rsync -avzP --bwlimit=100 /backup/ rsync://rsync_backup@192.168.174.128/HNBackup/ --password-file=/etc/rsync.password'

  4.5  制定计划任务

vim /root/rsyncd01.sh
#!/bin/sh
 flock -xn /var/run/rsync.lock -c  'rsync -avzP --bwlimit=100 /backup/ rsync://rsync_backup@192.168.174.128/HNBackup/ --password-file=/etc/rsync.password'

vim 
/root/rsyncd02.sh

  #!/bin/bash
  ps -ef | grep rsync | grep -v grep | awk '{print $2}' | xargs kill -9

  fi

vim /root/rsyncd03.sh

  #!/bin/bash
  ps -fe|grep rsync |grep -v grep
  if [ $? == 1 ]
  then
  flock -xn /var/run/rsync.lock -c 'rsync -avzP /backup/ rsync://rsync_backup@192.168.174.128/HNBack  up/ --password-file=/etc/rsync.password'
  else
  ps -ef | grep rsync | grep -v grep | awk '{print $2}' | xargs kill -9
  flock -xn /var/run/rsync.lock -c 'rsync -avzP /backup/ rsync://rsync_backup@192.168.174.128/HNBack  up/ --password-file=/etc/rsync.password'

  fi

  
  crontab -l 00 9-20/1 * * * /root/rsyncd01.sh
  
  crontab -l 00 8 * * * /root/rsyncd02.sh
  
  crontab -l 00 20 * * * /root/rsyncd03.sh
 

 

 

         

  

 

posted on 2018-06-19 16:58  木子李victor  阅读(232)  评论(0)    收藏  举报

导航