day11.5

day11.5

实时同步与实时备份

主机名 wanIP lanIP 角色 部署服务
web03 10.0.0.9 172.16.1.9 nfs客户端 httpd、php、nfs
db01 10.0.0.51 172.16.1.8 nfs客户端 httpd、php、nfs
nfs 10.0.0.31 172.16.1.31 rsync客户端、nfs服务端 nfs、rsync、inotify
backup 10.0.0.41 172.16.1.41 rsync客户端、nfs服务端(备机) nfs、rsync

部署rsync

# 1.安装rsync
[root@backup ~]# yum install -y rsync

# 2.修改rsync的配置文件
[root@backup ~]# vim /etc/rsyncd.conf 
[root@backup ~]# cat /etc/rsyncd.conf 
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to oldboyedu backup!
path = /backup

[data]
comment = I love you !
path = /data

# 3.创建www用户和组
[root@backup ~]# groupadd www -g 666
[root@backup ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M

# 4.创建密码文件
[root@backup ~]# echo 'rsync_backup:123' > /etc/rsync.password

# 5.授权密码文件
[root@backup ~]# chmod 600 /etc/rsync.password

# 6.创建备份目录和实时同步目录
[root@backup ~]# mkdir /backup
[root@backup ~]# mkdir /data

# 7.授权备份目录和实时同步目录
[root@backup ~]# chown www.www /backup/
[root@backup ~]# chown www.www /data/

# 8.启动rsync并加入开机自启
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd

# 9.检查进程和端口
[root@backup ~]# ps -ef|grep [r]sync
root 8059 1 0 10:24 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
[root@backup ~]# netstat -lntup|grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 8059/rsync
tcp6 0 0 :::873 :::* LISTEN 8059/rsync

客户端部署

# 1.安装rsync和inotify
[root@nfs ~]# yum install -y rsync inotify-tools
# 2.测试数据推送
[root@nfs ~]# rsync -avz /tmp/ rsync_backup@172.16.1.41::nfs_backup
[root@nfs ~]# rsync -avz /tmp/ rsync_backup@172.16.1.41::nfs_data

部署nfs

# 服务端
# 1.安装nfs
[root@nfs ~]# yum install -y nfs-utils
[root@backup ~]# yum install -y nfs-utils

# 2.修改nfs配置文件
[root@nfs ~]# vim /etc/exports

# 共享目录   允许访问NFS服务端的网段 (可读可写,同步,任何用户都映射成nfs的匿名用户)
/data 172.16.1.0/24(rw,sync,anonuid=666,anongid=666,all_squash)

# 3.创建www用户和组
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M

[root@backup ~]# groupadd www -g 666
[root@backup ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M

#  4.创建共享目录
[root@nfs ~]# mkdir /data
[root@backup ~]# mkdir /data

# 5.授权共享目录
[root@nfs ~]# chown www.www /data/
[root@backup ~]# chown www.www /data/

# 6.启动nfs服务并加入开机自启
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl enable nfs
[root@backup ~]# systemctl start nfs
[root@backup ~]# systemctl enable nfs

# 7.检查配置是否生效
[root@nfs ~]# cat /var/lib/nfs/etab
[root@backup ~]# cat /var/lib/nfs/etab

# 8.检查进程和端口
[root@nfs ~]# ps -ef|grep [n]fs
[root@nfs ~]# netstat -lntup

部署nfs客户端

# 1.安装nfs客户端
[root@web03 ~]# yum install -y nfs-utils
[root@web02 ~]# yum install -y nfs-utils
部署web网站
# 2.查看挂载点
[root@web03 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
[root@db01 ~]# showmount -e 172.16.1.41
Export list for 172.16.1.41:
/data 172.16.1.0/24
[root@web03 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
[root@db01 ~]# showmount -e 172.16.1.41
Export list for 172.16.1.41:
/data 172.16.1.0/24
# 3.测试挂载
[root@web03 ~]# mount -t nfs 172.16.1.41:/data /mnt
[root@db01 ~]# mount -t nfs 172.16.1.41:/data /media/

# 4.测试创建文件
[root@web03 ~]# touch /mnt/1.txt
[root@db01 ~]# ll /mnt/
total 0
-rw-r--r-- 1 666 666 0 May 20 10:51 1.txt
[root@web03 ~]# touch /media/1.txt
[root@db01 ~]# ll /media/
total 0
-rw-r--r-- 1 666 666 0 May 20 10:51 1.txt

部署web网站

# 1.安装httpd和php
[root@web03 ~]# yum install -y httpd php
[root@db01 ~]# yum install -y httpd php

# 2.修改httpd的配置文件
[root@web03 ~]# vim /etc/httpd/conf/httpd.conf
User www
Group www
[root@db01 ~]# vim /etc/httpd/conf/httpd.conf
User www
Group www

# 3.创建www用户和组
[root@db01 ~]# groupadd www -g 666
[root@db01 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
[root@web03~]# groupadd www -g 666
[root@web03 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M

# 4.部署代码
[root@db01 ~]# cd /var/www/html/
[root@db01 html]# unzip kaoshi_modify.zip
[root@web03 ~]# cd /var/www/html/
[root@web03 html]# unzip kaoshi_modify.zip
# 5.创建用户上传目录
[root@db01 html]# mkdir /var/www/html/user_data
[root@web03 html]# mkdir /var/www/html/user_data
# 6.授权用户上传数据目录
[root@db01 html]# chown www.www /var/www/html/user_data
[root@web03 html]# chown www.www /var/www/html/user_data
# 7.启动httpd服务
[root@db01 html]# systemctl start httpd
[root@db01 html]# systemctl enable httpd
[root@web03 html]# systemctl start httpd
[root@web03 html]# systemctl enable httpd
# 8.检查进程和端口
[root@nfs ~]# ps -ef|grep [n]fs
[root@nfs ~]# netstat -lntup

# 9.浏览器访问
http://10.0.0.9/
http://10.0.0.51/

# 10.挂载用户上传数据目录
[root@db01 html]# mount -t nfs 172.16.1.31:/data /var/www/html/user_data
[root@web03 html]# mount -t nfs 172.16.1.31:/data /var/www/html/user_data

实时同步部署sersync

# 1.安装sersync的依赖
[root@nfs ~]# yum install -y rsync inotify-tools

# 2.下载sersync
[root@nfs ~]# wget
http://test.driverzeng.com/other/sersync2.5.4_64bit_binary_stable_final.tar.gz

# 3.创建安装目录
[root@nfs ~]# mkdir /application

# 4.解压sersync
[root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /application/

# 5.改名
[root@nfs ~]# mv /application/GNU-Linux-x86/ /application/sersync-2.5.4

# 6.修改配置文件
[root@nfs ~]# vim /application/sersync-2.5.4/confxml.xml
inotifywait -mrq --format %w %f -e create,delete,attrib,close_write /data

1.将下面的false改成true
<inotify>
        <delete start="true"/>
        <createFolder start="true"/>
        <createFile start="true"/>
        <closeWrite start="true"/>
        <moveFrom start="true"/>
        <moveTo start="true"/>
        <attrib start="true"/>
        <modify start="true"/>
    </inotify>

2.修改推送数据的目录
<localpath watch="/data">

3.修改rsync服务端的IP地址和模块名
<remote ip="172.16.1.41" name="data"/>

4.修改rsync命令执行的选项
<commonParams params="-az --delete"/>

5.rsync命令认证,打开认证,修改匿名用户,密码文件
<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.passwd"/>

# 6.创建密码文件
[root@nfs data]# echo '123' > /etc/rsync.passwd

# 7.授权密码文件
[root@nfs data]# chmod 600 /etc/rsync.passwd

# 8.启动sersync
[root@nfs sersync-2.5.4]# /application/sersync-2.5.4/sersync2 -rdo /application/sersync2.5.4/confxml.xml

上传文件

[root@db01 html]# ll user_data/
total 240
-rw-r--r-- 1 www www 150106 May 21 13:24 05_4.zip
-rw-r--r-- 1 www www  92242 May 21 13:30 66_66.pdf

[root@web03 html]# ll user_data/
total 240
-rw-r--r-- 1 www www 150106 May 21 13:24 05_4.zip
-rw-r--r-- 1 www www  92242 May 21 13:30 66_66.pdf

# 查看共享目录
[root@nfs ~]# ll /data/
total 240
-rw-r--r-- 1 www  www  150106 May 21 13:24 05_.zip
-rw-r--r-- 1 www  www   92242 May 21 13:30 66_66.pdf
# 查看备机同步目录
[root@backup ~]# ll /data/
total 240
-rw-r--r-- 1 www www 150106 May 21 13:24 05_4.zip
-rw-r--r-- 1 www www  92242 May 21 13:30 66_66.pdf
You have mail in /var/spool/mail/root

实时备份

# 1.编写客户端脚本
[root@nfs ~]# vim backup.sh 

dir="/data"
back_dir="/back"
name=`hostname`
iip=`/usr/sbin/ifconfig eth1|awk 'NR==2{print $2}'`
date=`date +%F`
export RSYNC_PASSWORD=123

# 创建备份目录
mkdir -p ${back_dir}

# 进入备份目录并压缩文件
cd ${dir} && tar zcf ${back_dir}/${name}_${iip}_${date}.tar.gz .

# 生成MD5校验文件
cd ${back_dir} && md5sum ${name}_${iip}_${date}.tar.gz > ${name}_${iip}_${date}.md5
# 推送数据到rsync服务端
rsync -avz ${back_dir}/ rsync_backup@172.16.1.41::backup

配置邮箱

# 1.安装mail
[root@backup ~]# yum install -y mailx

# 2.配置邮箱
[root@backup ~]# vim /etc/mail.rc
set from=253097001@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=253097001@qq.com
set smtp-auth-password=授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/

# 3.编写服务端脚本
[root@backup ~]# vim md5.sh 

dir="/backup"

cd ${dir}/ && md5sum -c nfs_172.16.1.31_2022-05-21.md5 |mail -s "dd" 2794552827@qq.com

编写定时任务

# 客户端编写
[root@backup ~]# crontab -e
* * * * * /bin/sh /root/md5.sh & >/dev/null

# 服务端编写
[root@backup ~]# crontab -e
* * * * * /bin/sh /root/md5.sh & >/dev/null

posted @ 2022-05-21 15:24  Gabydawei  阅读(14)  评论(0编辑  收藏  举报