nfs使用案例

准备

主机名 角色 外网IP 内网IP
nfs nfs服务端,rsync的客户端 10.0.0.31 172.16.1.31
backup rsync服务端 10.0.0.41 172.16.1.41
web01 nfs客户端,rsync客户端 10.0.0.7 172.16.1.7
web02 nfs客户端,rsync客户端 10.0.0.8 172.16.1.8

1.目录名 $hostname_$ip_$date
2.无差异同步

nfs服务端

1.安装nfs
[root@nfs ~]# yum install -y nfs-utils

2.修改配置文件
[root@nfs ~]# vim /etc/exports
/date 172.16.1.0/24(rw,sync,all_squash)

3.创建目录
[root@nfs ~]# mkdir /date

4.授权属主属组
[root@nfs ~]# chown nfsnobody:nfsnobody /date

5.启动服务
[root@nfs ~]# systemctl start nfs-server

6.检查进程和端口号
[root@nfs ~]# ps -ef|grep [n]fs

[root@nfs ~]# netstat -lntup|grep 111

nfs客户端(web01)

1.安装
[root@web01 html]# yum install -y nfs-utils

2.查看挂载点
[root@web01 html]# showmount -e 172.16.1.31

3.安装网站服务
[root@web01 ~]# yum install -y httpd php

4.进入/var/www/html目录
[root@web01 ~]# cd /var/www/html

5.上传代码
rz

6.解压代码
[root@web01 html]# unzip kaoshi.zip

7.修改了php代码,改了里面上传目录
[root@web02 html]# vim upload_file.php
$wen="/var/www/html/pic";

8.修改目录的权限
[root@web01 html]# chown apache.apache /var/www/html/

9.启动服务
[root@web01 html]# systemctl start httpd

10.挂载目录
[root@web01 html]# mount -t nfs 172.16.1.31:/date /var/www/html/pic/

11.查看挂载
[root@web01 html]# df -h

#开机自启()不推荐
vim /etc/fstab
172.16.1.31:/data    /var/www/html/pic/    nfs   defaults   0 0

nfs客户端(web02)

1.安装
[root@web02 html]# yum install -y nfs-utils

2.查看挂载点
[root@web02 html]# showmount -e 172.16.1.31

3.安装网站服务
[root@web00 ~]# yum install -y httpd php

4.进入/var/www/html目录
[root@web02 ~]# cd /var/www/html

5.上传代码
rz

6.解压代码
[root@web02 html]# unzip kaoshi.zip

7.修改了php代码,改了里面上传目录
[root@web02 html]# vim upload_file.php
$wen="/var/www/html/pic";

8.修改目录的权限
[root@web02 html]# chown apache.apache /var/www/html/

9.启动服务
[root@web02 html]# systemctl start httpd

10.挂载目录
[root@web02 html]# mount -t nfs 172.16.1.31:/date /var/www/html/pic/

11.查看挂载
[root@web02 html]# df -h

rsync服务端(backup)

安装
yum -y install rsync

1.修改配置文件
[root@backup ~]# vim /etc/rsyncd.conf

#禁锢指定的目录,不允许用户跳出到其他目录
use chroot = no
#最大连接数
max connections = 200
#超出时间
timeout = 600
#忽略错误
ignore errors
#只读为false,可读可写
read only = false
#不允许其他用户查询模块名
list = false
#虚拟用户,rsync同步需要使用的用户
auth users = rsync_backup
#存放虚拟用户密码的文件
secrets file = /etc/rsync.passwd
#rsync服务的日志存放路径
log file = /var/log/rsyncd.log
#####################################
#模块名
[backup]
#同步的描述信息
comment = welcome to oldboyedu backup!
#同步的路径
path = /backup

2.创建服务启动的用户
[root@backup ~]\# useradd rsync -s /sbin/nologin -M

3.创建虚拟用户的密码文件
密码文件的格式
用户名:密码
[root@backup ~]\# echo 'rsync_backup:123' > /etc/rsync.passwd
[root@web01 ~]# cat /etc/rsync.passwd
rsync_backup:123

4.rsync要求密码文件的权限必须是600
[root@backup ~]\# chmod 600 /etc/rsync.passwd

5.创建一个同步的路径
[root@backup ~]\# mkdir /backup

6.修改同步路径的属主和属组
[root@backup ~]\# chown rsync:rsync /backup/

7.启动rsync服务
[root@backup ~]\# systemctl start rsyncd

8.加入开机自启
[root@backup ~]\# systemctl enable rsyncd

rsync的客户端(nfs)

1.安装
yum -y install rsync
#脚本
[root@nfs ~]# vim tongbu.sh 
#!/bin/bash

backup=/backup
HOSTNAME=$(hostname)
IP=$(/usr/sbin/ifconfig eth1|awk 'NR==2{print $2}')
DATE=$(date +%F)
zong=/${HOSTNAME}_${IP}_${DATE}
export RSYNC_PASSWORD=123
mkdir -p $zong

rsync -az --delete /etc/passwd /$zong
rsync -az --delete /date /$zong
rsync -az --delete /$zong rsync_backup@172.16.1.41::backup

#定时任务
[root@nfs ~]# crontab -e

#无差异同步
* * * * * /bin/sh /root/tongbu.sh

rsync的客户端(web01,web02)

#安装
yum -y install rsync

[root@nfs ~]# vim tongbu.sh 
#!/bin/bash

backup=/backup
HOSTNAME=$(hostname)
IP=$(/usr/sbin/ifconfig eth1|awk 'NR==2{print $2}')
DATE=$(date +%F)
zong=/${HOSTNAME}_${IP}_${DATE}
export RSYNC_PASSWORD=123
mkdir -p $zong

rsync -az --delete /etc/passwd /$zong
rsync -az --delete /$zong rsync_backup@172.16.1.41::backup

#定时任务
[root@nfs ~]# crontab -e

#无差异同步
* * * * * /bin/sh /root/tongbu.sh