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