Linux系统集群架构线上项目配置实战 五(完结篇)

2020-09-16 16:55:31 浏览数 (1)

写在前面

今天介绍项目后期的全网数据备份规划与配置过程,整个过程包括备份规划、脚本编写、数据同步等

01

全网数据备份规划

数据备份规划如下

数据库

从库开启binlog,通过全备与增量备份来进行,每天00:00全备一次,每天12:00增量备份一次,初期数据量不大的情况,后期根据数据量进行调整

本地备份目录

代码语言:javascript复制
/server/backup/mysql/data
/server/backup/mysql/binlog

FTP数据

实时同步上传数据,防止服务故障,可以快速切换

代码语言:javascript复制
/www/ftp 同步至 /www/ftp

其它服务器数据实行实时同步

比如说配置文件备份、代码包备份

本地备份目录

代码语言:javascript复制
/server/backup/app
/server/backup/sjapp
/server/backup/admin
/server/backup/shangjia
/server/backup/web

所有数据本地保留一周,远端备份服务器保留30天

02

数据库服务备份配置

代码语言:javascript复制
mkdir /server/backup/mysql/data
mkdir /server/backup/mysql/binlog
mkdir /server/scripts/

脚本写好了,就需要写个定时任务定时执行,然后手工检查

代码语言:javascript复制
Cat>>/var/spool/cron/root<<EOF
00 00 * * * /bin/sh /server/scripts/fullbak.sh >/dev/null 2>&1
00 12 * * * /bin/sh /server/scripts/binlog_bak.sh >/dev/null 2>&1

EOF

03

静态资源服务器数据同步

同步服务器创建对等目录

mkdir /www/ftp

安装rsync服务

Yum install rsync –y

配置rsync配置文件

代码语言:javascript复制
vim /etc/rsyncd.conf
##rsync.conf config start
uid = rsync
gid = rsync
use chroot = no
max connetctions = 200
timeout = 100
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[backup]
path = /www/ftp
ignore errors
read only = false
list = false
hosts allow = 10.0.0.8
auth users = rsync_backup
secrets file = /etc/rsync.password
##rsync config  end

创建用户

代码语言:javascript复制
useradd rsync -s /sbin/nologin -M

配置权限设置密码

代码语言:javascript复制
chown -R rsync:rsync /www/ftp
echo "rsync_backup:rsync.conf">/etc/rsync.password
chmod 600 /etc/rsync.password

启动服务

代码语言:javascript复制
rsync –daemon
[root@resources ~]# netstat -lntup|grep rsync
tcp  0 0 0.0.0.0:873  0.0.0.0:*  LISTEN  26280/rsync

客户端配置密码

代码语言:javascript复制
echo "rsync.conf">/etc/rsync.password
chmod 600 /etc/rsync.password

测试手工同步数据是否成功

代码语言:javascript复制
[root@resources ~]# rsync -avzP /etc/hosts rsync_backup@10.0.0.11::backup --password-file=/etc/rsync.password
sending incremental file list
hosts
473 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)
sent 314 bytes  received 27 bytes  682.00 bytes/sec
total size is 473  speedup is 1.39
[root@ftp-bakserver ~]# ll /www/ftp
total 4
-rw-r--r-- 1 rsync rsync 473 May 26 13:24 hosts

客户端安装sersync服务

代码语言:javascript复制
tar zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/
[root@resources ~]# cd /usr/local/
[root@resources local]# mv GNU-Linux-x86 sersync

规范文件目录

代码语言:javascript复制
[root@resources sersync]# mkdir -p conf bin logs

拷贝配置文件并修改

代码语言:javascript复制
[root@resources sersync]# mv confxml.xml conf/
[root@resources sersync]# mv sersync2 bin/sersync

修改配置文件内容(confxml.xml)

1、修改24-28行

代码语言:javascript复制
<localpath watch="/opt/tongbu">
 <remote ip="10.0.0.11" name="tongbu1"/>
 <!--<remote ip="192.168.8.39" name="tongbu"/>-->注释内容
 <!--<remote ip="192.168.8.40" name="tongbu"/>-->注释内容
        </localpath>

修改后的内容为

代码语言:javascript复制
 <localpath watch="/www/ftp"> 本地数据的路径
  <remote ip="10.0.0.11" name="backup"/>远端IP与模块名称
         </localpath>
 <!#################################### -->注释内容

2、修改31-34行内容——认证

代码语言:javascript复制
<commonParams params="-artuz"/>
<auth start="false" users="root" passwordfile="/etc/rsync.pass"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>

修改后的内容为

代码语言:javascript复制
<commonParams params="-aruz"/>
<auth start="true" users="rsync_backup"  passwordfile="/etc/rsync.password"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="true" time="100"/><!-- timeout=100 -->
<ssh start="false"/>

3、修改36-37行

代码语言:javascript复制
<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default
 every 60mins execute once-->

修改成我们刚刚创建好的logs目录

代码语言:javascript复制
<failLog path="/usr/local/sersync/logs/rsync_fail_log.sh" timeToExecut
e="60"/><!--default every 60mins execute once-->

配置环境变量

代码语言:javascript复制
echo 'export PATH=$PATH:/usr/local/sersync/bin'>>/etc/profile
[root@resources sersync]# source /etc/profile
[root@resources sersync]# which sersync
/usr/local/sersync/bin/sersync

启动服务

代码语言:javascript复制
[root@resources sersync]# sersync -r -d -o /usr/local/sersync/conf/confxml.xml

测试实时同步

代码语言:javascript复制
[root@resources opt]# cd backup/
[root@resources backup]# ll
total 0
[root@ftp-bakserver ~]# cd /www/ftp
[root@ftp-bakserver backup]# ll
total 0
[root@resources ftp]# for i in `seq 10`;do mkdir -p /opt/backup/$i;done
[root@resources ftp]# ll
1 5 10 6 2 7 3 8 4 9  
[root@ftp-bakserver ftp]# ls
1 5 10 6 2 7 3 8 4 9 

可以同步

04

全网服务器数据同步配置

备份服务器配置

代码语言:javascript复制
[user-app]
path = /mnt/backup/user-app
ignore errors
read only = false
list = false
hosts allow = 10.0.0.4
auth users = rsync_backup
secrets file = /etc/rsync.password
[sj-app]
path = /mnt/backup/sj-app
ignore errors
read only = false
list = false
hosts allow = 10.0.0.5
auth users = rsync_backup
secrets file = /etc/rsync.password
[admin]
path = /mnt/backup/admin
ignore errors
read only = false
list = false
hosts allow = 10.0.0.6
auth users = rsync_backup
secrets file = /etc/rsync.password
[shangjia]
path = /mnt/backup/shangjia
ignore errors
read only = false
list = false
hosts allow = 10.0.0.7
auth users = rsync_backup
secrets file = /etc/rsync.password
[web]
path = /mnt/backup/web
ignore errors
read only = false
list = false
hosts allow = 10.0.0.8
auth users = rsync_backup
secrets file = /etc/rsync.password 

其它同步客户端安装与配置sersync按上述操作进行

备份脚本基本都是打包备份或直接拷贝文件到本地备份目录

其它项目文章可查看往期回顾

-----至此,整个项目过程都已经介绍完成-----

0 人点赞