需求
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打开