假设nfs服务器挂了,就要走backup服务器也部署nfs
这种情况下,rsync和nfs要用到同一个文件夹,
所以他俩管理文件夹权限必须一样
1. lsync+rsync+nfs
rsync服务 10.0.0.41
1.安装rsync
[root@backup:~]#yum -y install rsync
2.配置rsync[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 = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to oldboyedu backup!
path = /backup
[web]
path = /web3.创建必要的数据
创建用户
[root@backup:~]#useradd -M -s /sbin/nologin rsync
设置密码文件
[root@backup:~]#echo rsync_backup:1 > /etc/rsync.passwd
[root@backup:~]#chmod 600 /etc/rsync.passwd
创建目录
[root@backup:~]#mkdir /backup /web
修改属主属组
[root@backup:~]#chown rsync.rsync /backup /web
[root@backup:~]#ll -d /backup/ /web
drwxr-xr-x 2 rsync rsync 6 Jul 30 12:23 /backup/
drwxr-xr-x 2 rsync rsync 6 Jul 30 12:23 /web4.启动rsyncd
[root@backup:~]#systemctl start rsyncd
[root@backup:~]#systemctl enable rsyncd客户端测试推送:部署nfs服务 10.0.0.31
1.安装
[root@nfs:~]#yum -y install nfs-utils
2.配置
[root@nfs:~]#cat /etc/exports
/data/web 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)3.创建必要数据
groupadd -g666 www
useradd -u666 -g666 -M -s /sbin/nologin www
mkdir /data/web -p
chown www.www /data/web4.启动nfs服务
[root@nfs:~]#systemctl start nfs
[root@nfs:~]#systemctl enable nfs5.检查nfs服务配置
[root@nfs:~]#cat /var/lib/nfs/etab
/data/web 172.16.1.0/24(rw,sync,wdelay
,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)客户端挂载:
web01: 安装nfs-utils
[root@web01:~]#showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data/web 172.16.1.0/24
[root@web01:~]#mount -t nfs 172.16.1.31:/data/web /codelsync服务 10.0.0.31
命令测试是否可以推送到backup服务
[root@nfs:~]#rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup
Password:
sending incremental file list
hosts[root@nfs:~]#rsync -avz /etc/hosts rsync_backup@172.16.1.41::web
Password:
sending incremental file list
hosts利用inotify监控目录的变化,然后通知rsync推送的动作
(使用守护进程模式,推送保障可以在命令行直接成功)1.安装lsync服务 10.0.0.31
[root@nfs:~]#yum -y install lsyncd2.配置lsync服务
[root@nfs:~]#cat /etc/lsyncd.conf
settings {logfile = "/var/log/lsyncd/lsyncd.log", --日志文件所在的位置statusFile = "/var/log/lsyncd/lsyncd.status", --日志文件所在的位置maxProcesses = 2, --进程的数量建议内核的数量一致nodaemon = false, --使用守护进程运行
}
sync {default.rsync, --默认运行方式source = "/data/web", --监控哪个目录target = "rsync_backup@10.0.0.41::web", --守护方式推送命令delete = true, --delete参数我有啥你就有啥以当前nfs中/data/web为准delay = 1, --1秒同步rsync = {binary = "/usr/bin/rsync", --rsync命令所在位置password_file = "/etc/rsyncd.pwd", --密码文件archive = true, ---a参数compress = true, ---z参数}
}3.创建必要数据
[root@nfs:~]#echo 1 >/etc/rsyncd.pwd
[root@nfs:~]#chmod 600 /etc/rsyncd.pwd4.启动lsyncd服务
[root@nfs:~]#systemctl start lsyncd
[root@nfs:~]#systemctl enable lsyncd
启动后会将监控的/data/web中已经存在的文件推送一次。如果监控多个目录: 多复制几个sync框架
[root@nfs:~]#cat /etc/lsyncd.conf
settings {logfile = "/var/log/lsyncd/lsyncd.log", --日志文件所在的位置statusFile = "/var/log/lsyncd/lsyncd.status", --日志文件所在的位置maxProcesses = 2, --进程的数量建议内核的数量一致nodaemon = false, --使用守护进程运行
}
sync {default.rsync, --默认运行方式source = "/data/web", --监控哪个目录target = "rsync_backup@10.0.0.41::web", --守护方式推送命令delete = true, --delete参数我有啥你就有啥以当前nfs中/data/web为准delay = 1, --1秒同步rsync = {binary = "/usr/bin/rsync", --rsync命令所在位置password_file = "/etc/rsyncd.pwd", --密码文件archive = true, ---a参数compress = true, ---z参数}
}
sync {default.rsync,source = "/opt/",target = "rsync_backup@10.0.0.41::backup",delete = true,delay = 1,rsync = {binary = "/usr/bin/rsync",password_file = "/etc/rsyncd.pwd",archive = true,compress = true,}
}
示例图
nfs 挂掉切换到 41 服务器
模拟31服务器挂掉
[root@nfs:~]#ifdown ens36
41安装nfs服务
[root@backup:~]#yum -y install nfs-utils
配置nfs服务
[root@backup:~]#cat /etc/exports
/web/ 172.16.1.0/24(rw,sync,all_squash)
创建必要数据
统一用户
rsync服务使用www运行---->使用www身份写入到/web/
nfs服务使用压缩为www--->使用www身份写入到/web
[root@backup:~]#id rsync
uid=1000(rsync) gid=1000(rsync) groups=1000(rsync)
[root@backup:~]#vim /etc/exports
[root@backup:~]#cat /etc/exports
/web/ 172.16.1.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)[root@backup:~]#systemctl start nfs
[root@backup:~]#systemctl enable nfsweb服务器挂载41:
[root@web01:~]#showmount -e 172.16.1.41
Export list for 172.16.1.41:
/web 172.16.1.0/24
[root@web01:~]#mount -t nfs 172.16.1.41:/web /code
[root@web01:~]#ll /code
total 0
-rw-r--r-- 1 1000 1000 0 Aug 2 10:35 10.log
-rw-r--r-- 1 1000 1000 0 Aug 2 10:35 1.log
-rw-r--r-- 1 1000 1000 0 Aug 2 10:35 2.log
-rw-r--r-- 1 1000 1000 0 Aug 2 10:35 3.log
-rw-r--r-- 1 1000 1000 0 Aug 2 10:35 4.log
-rw-r--r-- 1 1000 1000 0 Aug 2 10:16 test.txt
scp 命令
远程拷贝文件 每次都是全量。类似rsync
案例1.将web01的hosts传输到 41服务器的家目录
[root@nfs:~]#scp /etc/hosts 10.0.0.41:/root/案例2.将41服务器家目录的hosts 拷贝到当前web服务器的/opt目录下
[root@nfs:~]#scp 10.0.0.41:/root/hosts /opt/案例3.拷贝目录需要加 -r参数
[root@nfs:~]#scp -r /etc 10.0.0.41:/root/scp-指定端口号
[root@nfs:~]#scp -P2222 /etc/hosts 172.16.1.31:/root/注意用户权限的问题:
[root@nfs:~]#scp -P2222 /etc/hosts oldboy@172.16.1.31:/root/