需求:客户端上传文件同步到nfs文件共享服务器,nfs文件服务器数据备份到rsync服务器
- 机器准备
- 192.168.159.21
- 192.168.159.22
- 192.168.159.23
- 注意:关闭三台机器的防火墙-systemctl stop firewalld
1.(192.168.159.22)部署nfs服务器
(1)在A服务端机器安装nfs-utils和rpcbind包
yum install -y nfs-utils rpcbind nfs-utils:提供了NFS服务器程序和对应的管理工具 rpcbind:获取nfs服务器端的端口等信息
(2)启动rpcbind检查是否启动了rpcbind服务并监听111端口
systemctl start rpcbind netstat -tunlp | grep 111
(3)配置NFS服务的配置文件,参数配置:vi /etc/exports
/data/NFSdata 192.168.10.0/24(rw,sync) /data/NFSdata #表示要共享文件的目录 192.168.10.0/24 #表示所有允许访问的客户端IP网段,也可以写成指定的ip,只允许当前客户机访问 (rw,sync) #rw:表示读写权限,sync:表示数据同步写入内存硬盘
(4)创建/data/NFSdata目录,更改属主、属组
mkdir -p /data/NFSdata chown -R nfsnobody:nfsnobody /data #注意:此处不改权限,客户端没有创建文件权限
(5)启动nfs服务
systemctl start nfs
(6)设置开机启动
systemctl enable rpcbind.service systemctl enable nfs.service
2.(192.168.159.21)部署nfs客户端
(1)下载工具包nfs-utils
yum -y install nfs-utils
(2)设置开机自启
systemctl enable rpcbind.service #客户端不用启动nfs-server,但是要用到nfs-server的 一个命令showmount
(3)挂载
mount -t nfs 192.168.159.22:/data/NFSdata /NFS #挂在文件系统 showmount -e 192.168.159.22 #查看是否挂载上
(4)测试21节点创建文件同步到22节点
3.(192.168.159.23)部署Rsync服务端
(1)下载Rsync软件包
yum -y install rsync
(2)新增vi /etc/rsyncd.conf配置文件
#用户id uid = rsync #组id gid = rsync #程序安全设置 use chroot = no #客户端连接数 max connections = 200 #进程号文件位置 pid file = /var/run/rsyncd.pid #进程锁文件位置 lock file = /var/run/rsync.lock #日志文件位置 log file = /var/run/rsyncd.log #连接超时时间 timeout = 300 #3.1版本以上要加这个 fake super = yes #模块名称 [backup] #同步数据的目录 path = /backup #有错误时忽略 ignore errors #只读模式(true为只读,false为可读可写) read only = false #阻止远程列表 list = false #允许访问的IP hosts allow = 192.168.159.0/24 #禁止访问的IP hosts deny = 0.0.0.0/32 #虚拟用户 auth users = rsync_backup #存放用户和密码的文件 secrets file = /etc/rsync.password
(3)创建密码文件vi /etc/rsync.password
rsync_backup:123456
(4)给/etc/rsync.password降权
chmod 600 /etc/rsync.password
(5)创建程序用户rsync
useradd -M -s /sbin/nologin rsync
(6)创建/backup目录
mkdir /backup
(7)守护进程启动rsync
rsync --daemon
4.(192.168.159.22)作为Rsync客户端
(1)22客户端节点新增密码文件vi /etc/rsync.password
123456
(2)给/etc/rsync.password降权
chmod 600 /etc/rsync.password
(3)测试22节点传输文件到23节点
rsync -zav inotify.sh rsync_backup@192.168.159:23::backup --password-file=/etc/rsync.password
5.(192.168.159.22)部署inotify服务
(1)下载阿里云网络源
cd /etc/yum.repos.d wget http://files.tttidc.com/centos6/epel-6.repo
(2)更新yum源
yum clean all yum makecache
(3)下载inotify-tools工具包
yum -y install inotify-tools
(4)编写inotify.sh脚本
backupServer=192.168.159.23 path=/data/NFSdata inotifywait -mrq --format '%w%f' -e create,close_write,delete $path | while read line do if [ -f $line ];then rsync -za $line --delete rsync_backup@$backupServer::backup --password-file=/etc/rsync.password else cd $path rsync -za ./ --delete rsync_backup@$backupServer::backup --password-file=/etc/rsync.password fi done
(5)后台启动脚本
sh inotify.sh &
(6)测试数据同步
$path rsync -za ./ --delete rsync_backup@$backupServer::backup --password-file=/etc/rsync.password fi done