linux系统rsync与sersync与nfs-utils结合共享存储,实时备份

需求

web01 10.0.0.7 172.16.1.7 rsync的客户端,nfs的客户端,网站rsync,nfs,apache,php **

web02 10.0.0.8 172.16.1.8 rsync的客户端,nfs的客户端,网站rsync,nfs,apache,php

nfs 10.0.0.31 172.16.1.31 rsync的客户端,nfs的服务端(共享存储)rsync,nfs,sersync

backup 10.0.0.41 172.16.1.41 rsync的服务端rsync

1.1环境准备

用户名 外网ip 内网ip 角色 部署服务
web01 10.0.0.7 172.16.1.7 rsync和nfs的客户端,网站 rsync和nfs,apache,php
web02 10.0.0.8 172.16.1.8 rsync和nfs的客户端,网站 rsync和nfs,apache,php
nfs 10.0.0.31 172.16.1.31 rsync的客户端nfs的服务端,共享存储 rsync和nfs
backup 10.0.0.41 172.16.1.41 rsync的服务端 rsync

1.2 rsync服务端部署

## 服务端
安装rsync
[root@backup ~]# yum install -y 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 = nfs_bak
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[nfs]
comment = welcome to oldboyedu backup!
path = /backup
# 创建用户组和用户
[root@backup ~]# groupadd www -g 666
[root@backup ~]# useradd www -g 666 -u 666 -s /sbin/nologin -M
# 创建密码文件并写入用户名密码
[root@backup ~]# vim /etc/rsync.passwd 
[root@backup ~]# cat /etc/rsync.passwd 
nfs_bak:123
# 给密码文件授权600
[root@backup ~]# chmod 600 /etc/rsync.passwd
# 创建备份目录
[root@backup ~]# mkdir /backup/
# 给备份目录授权属主和属组权限为www
[root@backup ~]# chown www.www /backup/
[root@backup ~]# ll /backup/ -d
drwxr-xr-x 2 www www 20 May 10 08:21 /backup/
# 启动服务并开机自启
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
# 检测端口和进程
[root@backup ~]# netstat -lntup|grep 873
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      7201/rsync          
tcp6       0      0 :::873                  :::*                    LISTEN      7201/rsync          
[root@backup ~]# ps -ef|grep rsync
root       7201      1  0 00:13 ?        00:00:00 /usr/bin/rsync --daemon --no-detach
root       7224   6982  0 00:14 pts/0    00:00:00 grep --color=auto rsync

1.3 rsync客户端部署

# 下载rsync
[root@web01 ~]# yum install -y rsync
[root@web02 ~]# yum install -y rsync
[root@nfs ~]# yum install -y rsync

# 设置密码环境变量
[root@nfs ~]# export RSYNC_PASSWORD=123
# 向rsync服务端推送文件
[root@nfs ~]# rsync -avz /etc/passwd nfs_bak@10.0.0.41::nfs
sending incremental file list

sent 48 bytes  received 20 bytes  136.00 bytes/sec
total size is 986  speedup is 14.50
# 查看服务端是否接收到文件
[root@backup ~]# cd /backup/
[root@backup backup]# ll
total 4
-rw-r--r-- 1 rsync rsync 986 May  3 20:01 passwd
# 同理,web01和web02 操作步骤和nfs一样

1.4 nfs服务端部署

# 下载nfs
[root@nfs ~]# yum install -y nfs-utils
# 修改配置文件
[root@nfs ~]# vim /etc/exports
[root@nfs ~]# cat /etc/exports
/yonghu 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
# 创建共享目录
[root@nfs ~]# mkdir /yonghu
# 创建权限为666的用户组和用户
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]#  useradd www -g 666 -u 666 -s /sbin/nologin -M
# 修改共享目录的用户和用户组
[root@nfs ~]# chown www.www /yonghu/
# 启动nfs服务并加入开机自启
[root@nfs ~]# systemctl  start rpcbind nfs-server
[root@nfs ~]# systemctl  enable rpcbind nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
# 查看有没有提供房源
[root@nfs ~]# showmount  -e
Export list for nfs:
/yonghu 172.16.1.0/24

1.5nfs客户端部署

# 下载nfs
[root@web02 ~]# yum install -y nfs-utils
[root@web01 ~]# yum install -y nfs-utils

# 查看服务端房源
[root@web01 ~]# showmount -e 10.0.0.31
Export list for 10.0.0.31:
/yonghu 172.16.1.0/24
[root@web02 ~]# showmount -e 10.0.0.31
Export list for 10.0.0.31:
/yonghu 172.16.1.0/24
# 挂载
[root@web01 ~]# mount -t nfs 172.16.1.31:/yonghu /mnt/
[root@web02 ~]# mount -t nfs 172.16.1.31:/yonghu /mnt/

# 查看是否同步
[root@web02 mnt]# touch a.txt
[root@web02 mnt]# ll
total 0
-rw-r--r-- 1 666 666 0 May 11 00:55 a.txt
[root@web01 mnt]# ll
total 0
-rw-r--r-- 1 666 666 0 May 11 00:55 a.txt
[root@nfs yonghu]# ll
total 0
-rw-r--r-- 1 www www 0 May 11 00:55 a.txt
# 将nfs服务器的/yonghu目录下的文件推送到backup服务器
[root@nfs yonghu]# rsync -av /yonghu/ nfs_bak@10.0.0.41::nfs
#查看结果
[root@backup backup]# ll
total 4
-rw-r--r-- 1 www   www     0 May 11 00:55 a.txt

1.6 apache和PHP服务与nfs共享存储

## 下载httpd和php
[root@web01 ~]# yum install -y httpd php
[root@web02 ~]# yum install -y httpd php
# 修改启动服务的用户
vim /etc/httpd/conf/httpd.conf
把66和67行的用户改成www
创建用户
[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -g 666 -u 666 -s /sbin/nologin -M
# 进入httpd的站点目录
上传文件
修改目录权限
[root@web02 html]# chown -R www.www /var/www/html/
# 启动服务并加入开机自启
[root@web01 ~]# systemctl start httpd
[root@web01 ~]# systemctl enable httpd
# 检测端口
[root@web01 ~]# netstat -lntup|grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      7859/httpd 
# 修改代码固定上传文件的目录
vim /var/www/htmlupload_file.php
$wen="/var/www/html/upload";

# 挂载目录
[root@web01 ~]# mount -t nfs 172.16.1.31:/yonghu /var/www/html/
[root@web02 ~]# mount -t nfs 172.16.1.31:/yonghu /var/www/html/
# 10.0.0.7上传图片10.0.0.8打开

1.7 sersync实现共享存储实时同步nfs和backup服务器

## sersync部署在客户端
# 下载sersync的依赖
[root@nfs ~]# yum install -y rsync inotify-tools
# 下载sersync的安装包
[root@nfs ~]# wget https://raw.githubusercontent.com/wsgzao/sersync/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 ~]# mv GNU-Linux-x86 /usr/local/sersync
[root@nfs ~]# 

# 修改配置文件
vim /usr/local/sersync/confxml.xml

# 写密码到密码文件
[root@nfs ~]# echo 123 >/etc/rsync.pass
# 授权600权限到密码文件
[root@nfs ~]# chmod 600 /etc/rsync.pass
# 启动服务
[root@nfs ~]# /usr/local/sersync/sersync2 -rdo /usr/local/sersync/confxml.xml 
# 启动完成后进入客户端的/yonghu目录。创建一个a.txt文件,然后查看服务端是不是实时同步
[root@nfs yonghu]# touch a.txt
[root@backup backup]# ll
total 200
-rw-r--r-- 1 www www      0 May 10 19:51 a.txt
# 然后客户端echo 123 写入到这个文件里,再次查看服务端
[root@nfs yonghu]# echo 123 >a.txt
[root@backup backup]# cat a.txt
123



## 最后再结合web01和web02 的nfs共享就做到了web01和web02与nfs服务器共享,nfs实时备份到backup服务器

linux9期架构day05文档

rsync报错总结

## 服务端 安装rsync服务
[root@backup ~]# yum install -y rsync

#修改rsync的配置文件删除里面的内容加上下面的内容保存退出
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = wzh_bak
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[wzh]
comment = welcome to oldboyedu backup!
path = /backup

# 创建出指定的目录
[root@backup ~]# mkdir /backup

# 创建密码文件并写入用户名和密码,用户名和配置文件保持一致
[root@backup ~]# echo wzh_bak:123 >/etc/rsync.passwd


##  客户端安装rsync
[root@web01 ~]# yum install -y rsync


#  安装完成后客户端向服务端推送文件
[root@web01 ~]# rsync -az /etc/passwd wzh_bak@10.0.0.41::wzh
# 第一个报错
rsync: failed to connect to 10.0.0.41 (10.0.0.41): No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(125) [sender=3.1.2]
百度翻译结果:rsync:无法连接到10.0.0.41(10.0.0.41):没有到主机的路由(113)

rsync错误:clientserver.c(125)上的套接字IO(代码10)中有错误[发送方=3.1.2]

## 解决思路
1.网络
[root@web01 ~]# ping 10.0.0.41
PING 10.0.0.41 (10.0.0.41) 56(84) bytes of data.
64 bytes from 10.0.0.41: icmp_seq=1 ttl=64 time=0.616 ms
64 bytes from 10.0.0.41: icmp_seq=2 ttl=64 time=1.30 ms
网路没问题
2.端口
[root@web01 ~]# telnet 10.0.0.41 873
Trying 10.0.0.41...
telnet: connect to address 10.0.0.41: No route to host
正在尝试10.0.0.41。。。
telnet:连接到地址10.0.0.41:没有到主机的路由
# 查看服务端端口的873端口有没有
[root@backup ~]# netstat -lntup|grep 873
# 结果没结果,那这时候就启动一下
[root@backup ~]# systemctl  start rsyncd
[root@backup ~]# netstat -lntup|grep 873
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      7427/rsync          
tcp6       0      0 :::873                  :::*                    LISTEN      7427/rsync 
# 端口起来了再telnet查看一下
[root@web01 ~]# telnet 10.0.0.41 873
Trying 10.0.0.41...
telnet: connect to address 10.0.0.41: No route to host
还是没找不到,这时候就要考虑查看防火墙的状态
3。防火墙
[root@backup ~]# systemctl  status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-05-10 07:17:26 CST; 37min ago
结果防火墙 没有关闭
# 关闭防火墙
[root@backup ~]# systemctl stop firewalld
[root@backup ~]# setenforce 0
# 客户端再次尝试读取服务端的端口
Trying 10.0.0.41...
Connected to 10.0.0.41.
Escape character is '^]'.
@RSYNCD: 31.0
可以找到
# 客户端向服务端推送密码文件
[root@web01 ~]# rsync -az /etc/passwd wzh_bak@10.0.0.41::wzh
Password: 
第二个报错
@ERROR: auth failed on module wzh
rsync error: error starting client-server protocol (code 5) at main.c(1649) [sender=3.1.2]
解决思路
1.检查模块名
2.检查用户名和密码
3.检查密码文件权限
[root@backup ~]# cat /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = wzh_bak
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[wzh]
comment = welcome to oldboyedu backup!
path = /backup

[root@backup ~]# cat /etc/rsync.passwd 
wzh_bak:123
[root@backup ~]# ll /etc/rsync.passwd  -d
-rw-r--r-- 1 root root 12 May 10 07:29 /etc/rsync.passwd

# 找到原因,密码文件的权限不正确
授权600权限
[root@backup ~]# chmod 600 /etc/rsync.passwd

# 设置客户端的密码环境变量免密传输
[root@web01 ~]# export RSYNC_PASSWORD=123
# 再次推送文件
[root@web01 ~]# rsync -az /etc/passwd wzh_bak@10.0.0.41::wzh
@ERROR: invalid uid rsync
rsync error: error starting client-server protocol (code 5) at main.c(1649) [sender=3.1.2]
还是报错,这次的错误和uid有关
解决思路: 查看服务端有没有rsync的用户和组,没有就创建
[root@backup ~]# id rsync
id: rsync: no such user
[root@backup ~]# useradd rsync -s /sbin/nologin -M

# 再次推送文件
[root@web01 ~]# rsync -az /etc/passwd wzh_bak@10.0.0.41::wzh
rsync: mkstemp ".passwd.xNUcf9" (in wzh) failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1179) [sender=3.1.2]
报错原因rsync:mkstemp“.passwd.xNUcf9”(在wzh中)失败:权限被拒绝(13)
解决思路查看备份目录权限,因为配置文件指定是rsync用户
[root@backup ~]# ll /backup/ -d
drwxr-xr-x 2 root root 6 May 10 07:28 /backup/
[root@backup ~]# chown rsync.rsync /backup/
[root@backup ~]# ll /backup/ -d
drwxr-xr-x 2 rsync rsync 6 May 10 07:28 /backup/

#再次推送文件
[root@web01 ~]# rsync -az /etc/passwd wzh_bak@10.0.0.41::wzh
[root@web01 ~]# 
没有报错,这时候查看服务端有没有收到
[root@backup ~]# ll /backup/
total 4
-rw-r--r-- 1 rsync rsync 986 May  3 20:01 passwd


# OK

nfs报错总结

## 服务端
1.下载软件包
[root@web01 ~]# yum install -y nfs-utils
# 修改配置文件
[root@web01 ~]# vim /etc/exports
[root@web01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
# 创建出目录
[root@web01 ~]# mkdir /data
# 创建id为666的用户和用户组
[root@web01 ~]# groupadd wzh -g 666
[root@web01 ~]# useradd  wzh -u 666 -g 666 -s /sbin/nologin -M
# 启动服务
先启动rpcbind再启动nfs-server
[root@web01 ~]# systemctl start rpcbind nfs-server
[root@web01 ~]# 
# 启动完成查看有没有这个共享的房源
[root@web01 ~]# showmount -e
Export list for web01:
/data 172.16.1.0/24

## 客户端
1.下载软件包
[root@web02 ~]# yum install -y nfs-utils

# 查看服务端的房源情况
[root@web02 ~]# showmount -e 10.0.0.7
Export list for 10.0.0.7:
/data 172.16.1.0/24
# 因为我的防火墙关闭了,如果打开就会出现报错
[root@web01 ~]# systemctl start firewalld
[root@web02 ~]# showmount -e 10.0.0.7
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
# 解决办法关闭防火墙
systemctl stop firewalld
setenforce 0
#  挂载
[root@web02 ~]# mount -t nfs 10.0.0.7:/data /wzh
mount.nfs: mount point /wzh does not exist
解决思路,查看有没有/wzh这个目录,没有则创建
[root@web02 ~]# ll /wzh
ls: cannot access /wzh: No such file or directory
[root@web02 ~]# mkdir /wzh
[root@web02 ~]# ll /wzh
total 0
# 再次挂载
[root@web02 ~]# mount -t nfs 10.0.0.7:/data /wzh
mount.nfs: access denied by server while mounting 10.0.0.7:/data
解决思路,查看ip和配置文件是否一致
[root@web01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
得到结果,ip不一致,挂载时把ip改成和配置文件相同网段的ip
# 再次挂载
[root@web02 ~]# mount -t nfs 172.16.1.7:/data /wzh/
mount.nfs: No route to host
还是报错
解决思路网络,防火墙
最后找到原因是内网网卡配置文件写错了......
NETMASK=255.255.255.0写成了=223.5.5.5了......
改过来之后可以ping通内网
#  然后再挂载一下
[root@web02 ~]# mount -t nfs 172.16.1.7:/data /wzh/
[root@web02 ~]# df -h
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda3          19G  1.3G   18G   7% /
devtmpfs          476M     0  476M   0% /dev
tmpfs             487M     0  487M   0% /dev/shm
tmpfs             487M  7.7M  479M   2% /run
tmpfs             487M     0  487M   0% /sys/fs/cgroup
/dev/sda1         497M  120M  378M  25% /boot
tmpfs              98M     0   98M   0% /run/user/0
172.16.1.7:/data   19G  1.3G   18G   7% /wzh

# 进入到/wzh目录创建文件
[root@web02 wzh]# touch a.txt
touch: cannot touch ‘a.txt’: Permission denied
#  权限不足,解决思路查看服务端的共享目录权限
[root@web01 ~]# ll /data/ -d
drwxr-xr-x 2 root root 6 May 10 08:32 /data/
# 授权属主和属组
[root@web01 ~]# chown wzh.wzh /data
[root@web01 ~]# ll /data/ -d
drwxr-xr-x 2 wzh wzh 6 May 10 08:32 /data/
# 改完后再客户端的共享目录下创建文件
[root@web02 wzh]# touch a.txt
[root@web02 wzh]# ll 
total 0
-rw-r--r-- 1 666 666 0 May 10 10:15 a.txt
# 查看服务端是不是同步
[root@web01 ~]# cd /data/
[root@web01 data]# ll
total 0
-rw-r--r-- 1 wzh wzh 0 May 10 10:15 a.txt
# OK

sersync实时同步

## sersync部署在客户端
# 下载sersync的依赖
[root@nfs ~]# yum install -y rsync inotify-tools
# 下载sersync的安装包
[root@nfs ~]# wget https://raw.githubusercontent.com/wsgzao/sersync/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 ~]# mv GNU-Linux-x86 /usr/local/sersync
[root@nfs ~]# 

# 修改配置文件
vim /usr/local/sersync/confxml.xml

# 写密码到密码文件
[root@nfs ~]# echo 123 >/etc/rsync.pass
# 授权600权限到密码文件
[root@nfs ~]# chmod 600 /etc/rsync.pass
# 启动服务
[root@nfs ~]# /usr/local/sersync/sersync2 -rdo /usr/local/sersync/confxml.xml 
# 启动完成后进入客户端的/yonghu目录。创建一个a.txt文件,然后查看服务端是不是实时同步
[root@nfs yonghu]# touch a.txt
[root@backup backup]# ll
total 200
-rw-r--r-- 1 www www      0 May 10 19:51 a.txt
# 然后客户端echo 123 写入到这个文件里,再次查看服务端
[root@nfs yonghu]# echo 123 >a.txt
[root@backup backup]# cat a.txt
123



## 最后再结合web01和web02 的nfs共享就做到了web01和web02与nfs服务器共享,nfs实时同步backup服务器

*没有apache的共享存储备份**

环境准备

用户名 外网ip 内网ip 角色 部署服务
web01 10.0.0.7 172.16.1.7 rsync和nfs的客户端 rsync和nfs
web02 10.0.0.8 172.16.1.8 rsync和nfs的客户端 rsync和nfs
nfs 10.0.0.31 172.16.1.31 rsync的客户端nfs的服务端 rsync和nfs
backup 10.0.0.41 172.16.1.41 rsync的服务端 rsync
## 服务端
安装rsync
[root@backup ~]# yum install -y 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 = nfs_bak
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[nfs]
comment = welcome to oldboyedu backup!
path = /backup
# 创建用户组和用户
[root@backup ~]# groupadd www -g 666
[root@backup ~]# useradd www -g 666 -u 666 -s /sbin/nologin -M
# 创建密码文件并写入用户名密码
[root@backup ~]# vim /etc/rsync.passwd 
[root@backup ~]# cat /etc/rsync.passwd 
nfs_bak:123
# 给密码文件授权600
[root@backup ~]# chmod 600 /etc/rsync.passwd
# 创建备份目录
[root@backup ~]# mkdir /backup/
# 给备份目录授权属主和属组权限为www
[root@backup ~]# chown www.www /backup/
[root@backup ~]# ll /backup/ -d
drwxr-xr-x 2 www www 20 May 10 08:21 /backup/
# 启动服务并开机自启
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
# 检测端口和进程
[root@backup ~]# netstat -lntup|grep 873
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      7201/rsync          
tcp6       0      0 :::873                  :::*                    LISTEN      7201/rsync          
[root@backup ~]# ps -ef|grep rsync
root       7201      1  0 00:13 ?        00:00:00 /usr/bin/rsync --daemon --no-detach
root       7224   6982  0 00:14 pts/0    00:00:00 grep --color=auto rsync

## 客户端
# 下载rsync
[root@web01 ~]# yum install -y rsync
[root@web02 ~]# yum install -y rsync
[root@nfs ~]# yum install -y rsync
# 设置密码环境变量
[root@nfs ~]# export RSYNC_PASSWORD=123
# 向rsync服务端推送文件
[root@nfs ~]# rsync -avz /etc/passwd nfs_bak@10.0.0.41::nfs
sending incremental file list

sent 48 bytes  received 20 bytes  136.00 bytes/sec
total size is 986  speedup is 14.50
# 查看服务端是否接收到文件
[root@backup ~]# cd /backup/
[root@backup backup]# ll
total 4
-rw-r--r-- 1 rsync rsync 986 May  3 20:01 passwd

nfs服务端部署

# 下载nfs
[root@nfs ~]# yum install -y nfs-utils
# 修改配置文件
[root@nfs ~]# vim /etc/exports
[root@nfs ~]# cat /etc/exports
/yonghu 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
# 创建共享目录
[root@nfs ~]# mkdir /yonghu
# 创建权限为666的用户组和用户
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]#  useradd www -g 666 -u 666 -s /sbin/nologin -M
# 修改共享目录的用户和用户组
[root@nfs ~]# chown www.www /yonghu/
# 启动nfs服务并加入开机自启
[root@nfs ~]# systemctl  start rpcbind nfs-server
[root@nfs ~]# systemctl  enable rpcbind nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
# 查看有没有提供房源
[root@nfs ~]# showmount  -e
Export list for nfs:
/yonghu 172.16.1.0/24


nfs客户端部署

# 下载nfs
[root@web02 ~]# yum install -y nfs-utils
[root@web01 ~]# yum install -y nfs-utils

# 查看服务端房源
[root@web01 ~]# showmount -e 10.0.0.31
Export list for 10.0.0.31:
/yonghu 172.16.1.0/24
[root@web02 ~]# showmount -e 10.0.0.31
Export list for 10.0.0.31:
/yonghu 172.16.1.0/24
# 挂载
[root@web01 ~]# mount -t nfs 172.16.1.31:/yonghu /mnt/
[root@web02 ~]# mount -t nfs 172.16.1.31:/yonghu /mnt/

# 查看是否同步
[root@web02 mnt]# touch a.txt
[root@web02 mnt]# ll
total 0
-rw-r--r-- 1 666 666 0 May 11 00:55 a.txt
[root@web01 mnt]# ll
total 0
-rw-r--r-- 1 666 666 0 May 11 00:55 a.txt
[root@nfs yonghu]# ll
total 0
-rw-r--r-- 1 www www 0 May 11 00:55 a.txt
# 将nfs服务器的/yonghu目录下的文件推送到backup服务器
[root@nfs yonghu]# rsync -av /yonghu/ nfs_bak@10.0.0.41::nfs
#查看结果
[root@backup backup]# ll
total 4
-rw-r--r-- 1 www   www     0 May 11 00:55 a.txt

有网站版本的共享存储备份

环境准备

用户名 外网ip 内网ip 角色 部署服务
web01 10.0.0.7 172.16.1.7 rsync和nfs的客户端,网站 rsync和nfs,apache,php
web02 10.0.0.8 172.16.1.8 rsync和nfs的客户端,网站 rsync和nfs,apache,php
nfs 10.0.0.31 172.16.1.31 rsync的客户端nfs的服务端,共享存储 rsync和nfs
backup 10.0.0.41 172.16.1.41 rsync的服务端 rsync

需要安装的内容和上面的没有apache的共享存储一样,唯一不同的是多了个httpd和php

## 下载httpd和php
[root@web01 ~]# yum install -y httpd php
[root@web02 ~]# yum install -y httpd php
# 修改启动服务的用户
vim /etc/httpd/conf/httpd.conf
把66和67行的用户改成www
创建用户
[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -g 666 -u 666 -s /sbin/nologin -M
# 进入httpd的站点目录
上传文件
修改目录权限
[root@web02 html]# chown -R www.www /var/www/html/
# 启动服务并加入开机自启
[root@web01 ~]# systemctl start httpd
[root@web01 ~]# systemctl enable httpd
# 检测端口
[root@web01 ~]# netstat -lntup|grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      7859/httpd 
# 修改代码固定上传文件的目录
vim /var/www/htmlupload_file.php
$wen="/var/www/html/upload";

# 挂载目录
[root@web01 ~]# mount -t nfs 172.16.1.31:/yonghu /var/www/html/
[root@web02 ~]# mount -t nfs 172.16.1.31:/yonghu /var/www/html/
# 10.0.0.7上传图片10.0.0.8打开


posted @ 2020-07-13 18:38  王顺子  阅读(170)  评论(0编辑  收藏  举报