本次实验的主要目的:
1.搭建web服务,使用nfs服务共享的/data目录挂载到web站点目录上。
2.nfs服务器与backup服务器使用sersync实时同步/data目录中的文件。
3.backup服务器作为rsync服务端,全网服务器定时备份到backup上,并且给web服务提供备用nfs共享。
服务器主机名及IP划分:
web服务器:hostname:web01 WAN IP:10.0.0.7/24 LAN IP:172.16.1.7/24
nfs服务器:hostname:nfs WAN IP:10.0.0.31/24 LAN IP:172.16.1.31/24
backup服务器:hostname:backup WAN IP:10.0.0.41/24 LAN IP:172.16.1.41/24
注意:本次实验不涉及selinux和firewalld服务,全部主机都已经全部关闭selinux和firewalld服务。
配置流程
1.web服务器
1)安装web服务软件,nfs软件,rsync软件,创建用户(组),修改权限等环境。
[root@web01 ~]# yum install -y httpd php php-mbstring php-gd rpcbind nfs-utils rsync
[root@web01 ~]# groupadd www -g666
[root@web01 ~]# useradd www -u666 -g666
[root@web01 ~]# id www
uid=666(www) gid=666(www) groups=666(www)
2)修改httpd配置文件,重启httpd服务,并加入开机自启
[root@web01 ~]# rpm -qc httpd|grep "httpd\.conf"
/etc/httpd/conf/httpd.conf
[root@web01 ~]# grep -Ev '^[ #]+|^$' /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
...
[root@web01 ~]# sed -i '/^User/c User www' /etc/httpd/conf/httpd.conf
[root@web01 ~]# sed -i '/^Group/c Group www' /etc/httpd/conf/httpd.conf
[root@web01 ~]# grep -Ev '^[ #]+|^$' /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User www
Group www
...
[root@web01 ~]# rpm -ql httpd|grep 'www/html'
/var/www/html
[root@web01 ~]# cd /var/www/html
[root@web01 html]# wget http://static.kodcloud.com/update/download/kodexplorer4.40.zip
[root@web01 html]# unzip kodexplorer4.40.zip
[root@web01 html]# chown -R www.www /var/www/html
[root@web01 ~]# systemctl enable httpd
[root@web01 ~]# systemctl restart httpd
3)rpcbind,nfs服务开机自启及重启服务,scp静态资源到挂载点目录中。
[root@web01 html]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
将静态资源scp到nfs服务器
[root@web01 html]# scp -r ./* 172.16.1.31:/data
4)(需要nfs服务器配置好后)挂载nfs共享目录。
[root@web01 html]# mount -t nfs 172.16.1.31:/data ./
[root@web01 html]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 50306052 2379928 47926124 5% /
devtmpfs 487088 0 487088 0% /dev
...
172.16.1.31:/data 50306176 2340992 47965184 5% /var/www/html
5)(需要backup服务器配置好rsync服务后)添加定时任务使用rsyncd服务备份xxx目录到backup服务器。
vim /rsync_client.sh
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Host=$(hostname)
IPdrs=$(awk -F '=' '/IPADDR/{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth1)
Time=$(date +%F)
Dir=/backup/${Host}_${IPdrs}_${Time}
###1.准备存储目录
mkdir ${Dir} -p
###2.打包备份
tar -czvhpf ${Dir}/config.tar.gz /etc/rc.local /etc/fstab /etc/hosts /etc/firewalld &>>/var/log/rsync.log
md5sum ${Dir}/config.tar.gz &>${Dir}/config.md5sum
###3.推送至备份服务器
###免密参数:RSYNC_PASSWORD=123456
rsync -avz ${Dir} rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.pass &>>/var/log/rsync.log
###可选密码文件参数--password-file=/etc/rsync.pass
###4.保留最近7天的数据
find /backup/* -type d -mtime +7 |xargs rm -fr &>>/var/log/rsync.log
##############################################################
[root@web01 html]# chmod +x /rsync_client.sh
[root@web01 html]# echo "123456" >/etc/rsync.pass
[root@web01 html]# chmod 400 /etc/rsync.pass
添加定时任务
[root@web01 html]# crontab -e
00 01 * * * sh /rsync_client.sh
2.nfs服务器
1)安装nfs软件,rsync软件
[root@nfs ~]# yum install -y rpcbind nfs-utils rsync
2)创建目录,用户(组),修改权限等环境
[root@nfs ~]# groupadd www -g666
[root@nfs ~]# useradd www -u666 -g666
[root@nfs ~]# id www
uid=666(www) gid=666(www) groups=666(www)
[root@nfs ~]# mkdir /data
[root@nfs ~]# chown www.www /data -R
3)修改nfs配置文件,重启rpcbind,nfs-utils,并加入开机自启。(对web服务提供nfs服务)
[root@nfs ~]# echo "/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)" >>/etc/exports
[root@nfs ~]# systemctl enable rpcbind nfs
[root@nfs ~]# systemctl restart nfs
web服务器scp文件到nfs服务器后需要修改属主和属组
[root@nfs ~]# ll /data
total 13676
drwxr-xr-x 10 root root 115 Apr 17 16:21 app
-rwxr-xr-x 1 root root 91248 Apr 17 16:21 ChangeLog.md
drwxr-xr-x 3 root root 74 Apr 17 16:21 config
...
[root@nfs ~]# chown -R www.www /data
4)下载安装sersync软件,修改sersync配置文件,创建对应文件及权限。
[root@nfs ~]# wget https://github.com/chiugui/sersync/raw/master/sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs ~]# tar -xf sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs ~]# ll
total 716
drwxr-xr-x 2 root root 41 Oct 26 2011 GNU-Linux-x86
-rw-r--r-- 1 root root 727290 Apr 17 16:34 sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs ~]# mkdir /sersync
[root@nfs ~]# mv GNU-Linux-x86/ /sersync/sersync
[root@nfs ~]# cd /sersync/sersync/
[root@nfs sersync]# ll
total 1772
-rwxr-xr-x 1 root root 2214 Oct 26 2011 confxml.xml
-rwxr-xr-x 1 root root 1810128 Oct 26 2011 sersync2
[root@nfs sersync]# vim confxml.xml
12 <inotify> <!--以下触发动作,建议全部为true-->
13 <delete start="true"/>
14 <createFolder start="true"/>
15 <createFile start="true"/>
16 <closeWrite start="true"/>
17 <moveFrom start="true"/>
18 <moveTo start="true"/>
19 <attrib start="true"/>
20 <modify start="true"/>
21 </inotify>
22
23 <sersync>
24 <localpath watch="/data"> <!--需要检查的目录-->
25 <remote ip="172.16.1.41" name="data"/> <!--rsync服务端的ip,模块名-->
28 </localpath>
29 <rsync>
30 <commonParams params="-artuz"/>
31 <auth start="true" users="sersync_nfs" passwordfile="/sersync/sersync/sersync_nfs.passwd"/> <!--认证开启,认证的虚拟用户和密码文件位置->
[root@nfs sersync]# echo "123456" >/sersync/sersync/sersync_nfs.passwd
[root@nfs sersync]# cat /sersync/sersync/sersync_nfs.passwd
123456
[root@nfs sersync]# chmod 400 /sersync/sersync/sersync_nfs.passwd
5)(需要backup服务器配置好rsync服务后)开启实时同步到backup服务器。
[root@nfs sersync]# ./sersync2 -h
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
参数-o:指定配置文件,默认使用confxml.xml文件
[root@nfs sersync]# ./sersync2 -dro confxml.xml
working please wait...
execute command: cd /data && rsync -artuz -R --delete ./ sersync_nfs@172.16.1.41::data --password-file=/sersync/sersync/sersync_nfs.passwd >/dev/null 2>&1
###检查是否有问题将“>/dev/null 2>&1”去掉,执行 cd /data && rsync -artuz -R --delete ./ sersync_nfs@172.16.1.41::data --password-file=/sersync/sersync/sersync_nfs.passwd >/dev/null 2>&1
6)(需要backup服务器配置好rsync服务后)添加定时任务使用rsyncd服务备份xxx目录到backup服务器。
vim /rsync_client.sh
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Host=$(hostname)
IPdrs=$(awk -F '=' '/IPADDR/{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth1)
Time=$(date +%F)
Dir=/backup/${Host}_${IPdrs}_${Time}
###1.准备存储目录
mkdir ${Dir} -p
###2.打包备份
tar -czvhpf ${Dir}/config.tar.gz /etc/rc.local /etc/fstab /etc/hosts /etc/firewalld &>>/var/log/rsync.log
md5sum ${Dir}/config.tar.gz &>${Dir}/config.md5sum
###3.推送至备份服务器
###免密参数:RSYNC_PASSWORD=123456
rsync -avz ${Dir} rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.pass &>>/var/log/rsync.log
###可选密码文件参数--password-file=/etc/rsync.pass
###4.保留最近7天的数据
find /backup/* -type d -mtime +7 |xargs rm -fr &>>/var/log/rsync.log
##############################################################
[root@nfs sersync]# chmod +x /rsync_client.sh
[root@nfs sersync]# echo "123456" >/etc/rsync.pass
[root@nfs sersync]# chmod 400 /etc/rsync.pass
添加定时任务
[root@nfs sersync]# crontab -e
10 01 * * * sh /rsync_client.sh
3.backup服务器
1)安装nfs软件,rsync软件
[root@backup ~]# yum install -y rsync nfs-utils rpcbind
2)创建目录,用户(组),修改权限等环境
[root@backup ~]# groupadd www -g666
[root@backup ~]# useradd www -u666 -g666
[root@backup ~]# id www
uid=666(www) gid=666(www) groups=666(www)
[root@backup ~]# mkdir /backup
[root@backup ~]# mkdir /data
[root@backup ~]# chown -R www.www /data /backup
3)修改rsync配置文件,创建对应文件及权限。重启rsyncd并加入开机自启。(对nfs服务器提供实时和定时备份,对web服务器提供定时备份服务。)
[root@backup ~]# vim /etc/rsyncd.conf
1 uid = www
2 gid = www
3 port = 873
4 fake super = yes
5 use chroot = no
6 max connections = 200
7 timeout = 600
8 ignore errors
9 read only = false
10 list = false
11 [backup]
12 auth users = rsync_backup
13 secrets file = /etc/rsync.passwd
14 comment = welcome backup
15 path = /backup
16 [data]
17 auth users = sersync_nfs
18 secrets file = /etc/rsync.passwd
19 comment = welcome data
20 path = /data
[root@backup ~]# echo -e "rsync_backup:123456\nsersync_nfs:123456" >/etc/rsync.passwd
[root@backup ~]# chmod 400 /etc/rsync.passwd
[root@backup ~]# cat /etc/rsync.passwd
rsync_backup:123456
sersync_nfs:123456
[root@backup ~]# systemctl enable rsyncd
[root@backup ~]# systemctl restart rsyncd
4)修改nfs配置文件,重启rpcbind,nfs-utils,并加入开机自启。 (对web服务提供nfs服务备用)
[root@nfs ~]# echo "/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)" >>/etc/exports
[root@nfs ~]# systemctl enable rpcbind nfs
[root@nfs ~]# systemctl restart nfs
- sersync 实时同步
1.什么是实时同步 监控一个目录的变化, 当该目录触发事件(创建\删除\修改) 就执行动作, 这个动作可以是 rsync同步 ,也可以是其他. 2.为什么要实时同步 1.能解决nfs单点故障问题. ...
- 5. Sersync实时同步
rsync+Sersync数据的实时同步 sersync介绍 1.什么是实时同步 监控一个目录的变化, 当该目录触发事件(创建\删除\修改) 就执行动作, 这个动作可以是 rsync同步 ,也可以是其 ...
- 5、Sersync实时同步实战
1.实时同步概述 1.什么是实时同步, 只要当前目录发生变化则会触发一个事件,事件触发后将变化的目录同步至远程服务器. 2.为什么要实时同步, 保证数据的连续性, 减少人力维护成本, 解决nfs单点故 ...
- sersync 实时同步网站数据
sersync同步实战 sersync是基于inotify和srync的二次开发,代码托管在github上面在rsync的客户端上安装,下载地址: https://raw.githubusercont ...
- Rsync + sersync 实时同步备份
一 Rsync + Sersync 实时同步介绍 1.Rsync 服务搭建介绍 云机上搭建Rsync server,在本地搭建Rsync Clinet. 2. Sersync 服务搭建介绍 ...
- day04 sersync实时同步和ssh服务
day04 sersync实时同步和ssh服务 sersync实时同步 1.什么是实时同步 实时同步是一种只要当前目录发生变化则会触发一个事件,事件触发后会将变化的目录同步至远程服务器. 2.为什么使 ...
- sersync 实时同步工具
出处:http://code.google.com/p/sersync/ 当前版本的sersync依赖于rsync进行同步.如下图所示,在同步主服务器上开启sersync,将监控路径中的文件同步到目标 ...
- Sersync实时同步企业应用配置实战
一.实验环境 CentOS版本: 6.6(2.6.32.-504.el6.x86_64) Rsync版本: Rsync-3.0.6(系统自带) Sersync版本:sersync2.5.4_64bi ...
- Linux之nginx反向代理+三台web+nfs共享存储实现集群配置
作业四:nginx反向代理+三台web+nfs共享存储实现集群配置 在各个web服务器上挂载nfs [root@localhost nginx]# mount -t nfs 192.168.152.1 ...
随机推荐
- 使用WireShark进行网络流量安全分析
WireShark的过滤规则 伯克利包过滤(BPF)(应用在wireshark的捕获过滤器上) ** 伯克利包过滤中的限定符有下面的三种:** Type:这种限定符表示指代的对象,例如IP地址,子网或 ...
- 在MacOS上利用docker构建buildroot
之前有听说过docker,但是一直没有使用过.最近终于下定决定使用了一下docker,感觉docker用于跨操作系统的软件工具使用还是比较友好的. 适用人群 本文忽略的部分Linux软件包安装的过程, ...
- zabbix笔记_002
监控登录用户 监控图形配置 创建图形: 配置完成后查看图形: 创建触发器配置 创建完成后可以查看 监控磁盘IO I/O查看工具: istat 安装[需要epel源]: yum install -y s ...
- DjangoORM操作之其他知识点
一.F与Q查询 F查询 F查询的应用场景主要是当你想要查询字段需要与数据库中的另外一个字段进行比较的时候,基于我们前面所学的知识点无法完成,那就需要用到F查询. F的导入 from django.db ...
- Chrome EC框架探索_0.0_引言
0.0 引言 嵌入式硬件抽象框架常常面临着这样的尴尬:封装层次较高的(arduino,mbed)不能充分暴露必要的API并面临着性能问题,封装层次较低的(HAL,LL)接口复杂且开发困难.近日发现的一 ...
- Servlet(三)----Servlet体系与HTTP
## Servlet的体系结构 Servlet --- 接口 | | GenericServlet --- 抽象类 | | HttpServlet -- 抽象类 GenericServle ...
- 数学-概率-New 21 Game
2020-02-10 13:24:26 问题描述: 问题求解: 第一次看到这个题目的时候想到的是之前做过的一条概率题,就是那个国际象棋,那条题目的做法是使用dp去对所有留在棋盘的种类进行计数,然后除以 ...
- mac下 yarn Stack trace: ExitCodeException exitCode=127
问题出在hadoop 为mac系统配置的读取java_home处. 更改 /Users/shaofengfeng/apache/hadoop/libexec/hadoop-config.sh 如下 # ...
- 递归回溯法求N皇后问题
问题描述:在一个NN(比如44)的方格中,在每一列中放置一个皇后,要求放置的皇后不在同一行,同一列,同一斜线上,求一共有多少种放置方法,输出放置的数组. 思路解析:从(1,1)开始,一列一列的放置皇后 ...
- [leetcode] 位操作题解
子集 题目[78]:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [ ...