基搭建LAMP环境,并实践基于DNS做基于域名的虚拟主机中的环境,重新搭建一个同样的环境

要求:

     a)实现web服务文件更新的自动同步到另一台机器上

     b)数据库实现主从复制

     c)通过shell脚本实现网站源代码备份和mysql备份,备份策略包括全量备份、增量备份、差异备份

 

 

a,实现web服务文件更新的自动同步到另一台机器上;

  1,httpd服务器上建立基于FQDN的两个虚拟web站点,并创建相关目录。

                              web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_自动同步

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_自动同步_02

2,修改测试windows主机的hosts文件,并编辑两个虚拟web站点对应的目录下的index.html文件。

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_03

 

 

 

 

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_04

3,测试两个虚拟web站点均可正常访问。

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_自动同步_05

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_自动同步_06

 

4,在linux2主机上安装samba并启动服务,

samba间接以及安装配置:

    实现的是LinuxWindows间资源互通的问题:在Linux下架设Samba服务器,在Windows下来访问。

  安装配置:

         安装命令: yuminstall  samba  samba-client -y

         服务启动:service nmbstart;service smb start

         服务脚本:

                   /etc/rc.d/init.d/nmb

                   /etc/rc.d/init.d/smb

         主配置文件:

                   /etc/samba/smb.conf

         修改配置文件:将工作组修改为和windows一样WORKGROUP,定义测试共享环境,然后重启服务

             vim smb.conf

                 vorkgroup=WORKGROUP

                 service nmb restart ; service smb restart

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_web_07

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_08


web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_web_09

 web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_10

使用smbpasswd命令将系统用户smbuser1加入samba用户:

     smbpasswd:

          -a Sys_User: 添加系统用户为samba用户

          -d :禁用

          -e: 启用

          -x: 删除

  web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_11

在另一台centos主机上验证:

  web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_web_12

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_13

windows主机中验证:

 web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_自动同步_14

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_自动同步_15

 

httpd服务器端(samba客户端)挂载samba共享目录:

      注意:需安装samba-clientcifs-utils程序;否则无法挂载:

        设置SMB共享目录:

vi /etc/samba/smb.conf ,在最后加入想要共享的文件夹:

[share]

               path = /shared

               available = yes

               browsealbe = yes

               public = yes

               writable = yes

        设置SMB用户:

samba的帐户设置有点特别,它使用的是系统的帐户,但是要把账户映射到samba的帐户数据库,而且要设置samba密码才能使用如果该账户只用于samba访问,可以不设置系统密码,而只为账户设置samba的密码

//我使用已有的用户,设置smb用户密码后始终不能成功从远程访问,所以新建了一个系统用户

useradd smbtest

passwd 654321

//设置smb用户的密码

smbpasswd -asmbtest//增加SMB用户,同时会提示设置密码

smbpasswd x smbtest//删除SMB用户

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_自动同步_16

     5,在httpd服务器主机上执行如下命令挂载:

        mount -t cifs -ousername=smbtest,password=654321 //192.168.1.19/shared  /mont

         注意:/mont目录需在本地先创建好。

       web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_web_17web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_自动同步_18

       

     6,设置自动挂载,并确认在httpd服务器上可用正常自动挂载:

          先设置nmb,smb,httpd开机启动服务:

           chkconfig httpd on

chkconfig nmb on

chkconfig smb on

   //192.168.1.19/shared  /mont cifs  defaults,_netdev,username=smbtest,password=654321,rw 0  0

 

 web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_19

 

 

7,在samba服务器(linux2)上共享目录上编辑Index.html文件;

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_web_20

 

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_21

 

8,删除vhosts目录下web1web2目录中htdocs目录,然后将samba共享的挂载目录/mont软连接到web1web2目录,这样web1web2两个虚拟站点的文件更新同步至另一台机器。

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_自动同步_22

9,通过windows主机访问验证:

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_23

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_web_24

b,数据库主从复制:

  MySQL是开源的关系型数据库系统。复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务器slave)的一个进程。

  服务器IP:192.168.1.19  ,从服务器IP192.168.1.20

1、编辑数据库配置文件my.cnf,一般在/etc/目录下。

#vi /etc/my.cnf

[mysqld]的下面加入下面代码:

log_bin=mysql_bin   //[必须]启用二进制日志

server_id=1      //[必须]服务器唯一ID

2、然后重启MySQL:

 

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_自动同步_25

 

3、登录MySQL服务器。

  先变更root帐号密码:

  web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_26

退出mysql后重新登入:

#mysql -uroot -p

在主服务器新建一个用户赋予“REPLICATION SLAVE”的权限。你不需要再赋予其它的权限。在下面的命令, %表示所有的IP

 

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_web_27

4,退出mysql,重启mysql服务后,再次登录mysql查看

 web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_28

    注意:记录下filepos的值,执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

5,修改从服务器/etc/my.cnf文件并启动mysql服务器。

  web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_29

6,登录从服务器并修改root密码后退出重新登录;

 web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_30

7配置从服务器Slave

  mysql>  CHANGE MASTER TO

   -> MASTER_HOST='192.168.3.11',

   -> MASTER_PORT=3306,

   -> MASTER_USER='rep1',

   -> MASTER_PASSWORD='123456',

   -> MASTER_LOG_FILE='mysql_bin.000001', //此处对应主服务器statusfile.

->MASTER_LOG_POS=106; //此处对应主服务器statusPosition

配置完成后退出,并重启服务器后再登入mysql

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_服务文件_31

 

8、检查从服务器复制功能状态:

web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_web_32

  Slave_IO_Running: Yes   //Yes表示连接正常

Slave_SQL_Running: Yes   //Yes表示连接正常

 

注意:作此配置之前使用了service iptables stop setenforce0 命令关闭了防火墙和selinux

     从服务器复制时,会在其数据目录中发现文件master.infoHOSTNAME-relay-log.info。从服务器使用这两个文件跟踪已经处理了多少主服务器的二进制日志

 

c,通过shell脚本实现网站源代码备份和mysql备份,备份策略包括全量备份、增量备份、差异备份

   1,先建立好备份存放目录:

     mkdir  /myback/{webback,sqlback}

2,编写脚本备份:

    web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_web_33

  3,查看执行目录验证:

       web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份_自动同步_34