zoukankan      html  css  js  c++  java
  • 搭建WEB、NFS共享、sersync实时同步以及全网定时备份服务流程

    本次实验的主要目的:
    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 -M -s /sbin/nologin
    [root@web01 ~]# id www
    uid=666(www) gid=666(www) groups=666(www)
     
     
     
    2)修改httpd配置文件,重启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
    ...
     查看httpd的默认网站路径
    [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
    #加入开机自启,重启httpd服务
    [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服务器(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
    #创建rsync认证时需要的密码文件,密码为123456
    [root@web01 html]# echo "123456" >/etc/rsync.pass
    #修改权限为只读(rsync中密码文件权限必须为400或600)
    [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 -M -s /sbin/nologin
    [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服务)
    #配置参数为:共享目录为/data,共享的网段为172.16.1.0/24,共享的目录为可读写,实时写入,全部权限压缩,压缩为uid666,gid666
    [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
     
    #配置sersync服务文件
    [root@nfs sersync]# vim confxml.xml

          <inotify>                            <!--以下触发动作,建议全部为true-->
              <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>
     
          <sersync>
              <localpath watch="/data">      <!--需要检查的目录-->
                  <remote ip="172.16.1.41" name="data"/>      <!--rsync服务端的ip,模块名-->
              </localpath>
              <rsync>
                  <commonParams params="-artuz"/>
                  <auth start="true" users="sersync_nfs" passwordfile="/sersync/sersync/sersync_nfs.passwd"/>    <!--认证开启,认证的虚拟用户和密码文件位置->

     #创建sersync所需的密码文件并修改权限为400
    [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 -M -s /sbin/nologin
    [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
    uid = www
    gid = www
    port = 873
    fake super = yes
    use chroot = no
    max connections = 200
    timeout = 600
    ignore errors
    read only = false
    list = false
    [backup]
    auth users = rsync_backup
    secrets file = /etc/rsync.passwd
    comment = welcome backup
    path = /backup
    [data]
    auth users = sersync_nfs
    secrets file = /etc/rsync.passwd
    comment = welcome data
    path = /data
    [root@backup ~]# echo -e "rsync_backup:123456 sersync_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
     


  • 相关阅读:
    手把手实战:eclipse 搭建 SpringMvc 框架环境
    解决eclipse中Tomcat服务器的server location选项不能修改的问题
    如何解决JSP页面顶端报错 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    第二课 --- git的(管理修改和撤销修改、删除文件)
    第二课 ---git时光穿梭(版本回退)
    第一课——git的简介和基本使用
    001——使用composer安装ThinkPHP5
    微信小程序中对于变量的定义
    微信小程序onLaunch修改globalData的值
    7——ThinkPhp中的响应和重定向:
  • 原文地址:https://www.cnblogs.com/osker/p/12723862.html
Copyright © 2011-2022 走看看