rsync同步操作
• 命令用法
– rsync [选项…] 源目录 目标目录
• 同步与复制的差异
– 复制:完全拷贝源到目标
– 同步:增量拷贝,只传输变化过的数据
同步控制
• rsync操作选项
– -n:测试同步过程,不做实际修改
– --delete:删除目标文件夹内多余的文档
– -a:归档模式,相当于-rlptgoD
– -v:显示详细操作信息
– -z:传输过程中启用压缩/解压
本地同步:
[root@svr7 ~]# mkdir /nsd01 /todir
[root@svr7 ~]# cp /etc/passwd /etc/shadow /nsd01
[root@svr7 ~]# ls /nsd01
[root@svr7 ~]# rsync -av /nsd01 /todir/ #同步目录本身
[root@svr7 ~]# ls /todir
[root@svr7 ~]# rsync -av /nsd01/ /todir/ #同步目录内容
[root@svr7 ~]# ls /todir
[root@svr7 ~]# rsync -av --delete /nsd01/ /todir/
[root@svr7 ~]# ls /todir
[root@svr7 ~]# touch /nsd01/1.txt
[root@svr7 ~]# rsync -av --delete /nsd01/ /todir/
[root@svr7 ~]# ls /todir
####################################################
rsync+SSH同步:远程同步
用法及服务端要求
• 列出 SSH 服务端资源
– rsync user@host :远程 目录/
• 与远程的 SSH目录保持同步
– 下行:rsync […] user@host:远程目录 本地目录
– 上行:rsync […] 本地目录 user@host:远程目录
虚拟机A:
]# rsync -av --delete /todir/ root@192.168.4.207:/opt/
虚拟机B:
]# ls /opt
虚拟机A:
]# touch /todir/3.txt
]# rsync -av --delete /todir/ root@192.168.4.207:/opt/
虚拟机B:
]# ls /opt
虚拟机A:
]# touch /todir/4.txt
]# rsync -av --delete /todir/ root@192.168.4.207:/opt/
虚拟机B:
]# ls /opt
###################################################
实时同步
一 生成公钥与私钥,ssh取消密码验证
虚拟机A:
1.生成公钥与私钥
[root@svr7 ~]# ssh-keygen #一路回车
[root@svr7 ~]# ls /root/.ssh/
id_rsa(私钥) id_rsa.pub(公钥)
known_hosts(记录曾经远程管理过的机器)
2.将公钥传递给对方
[root@svr7 ~]# ssh-copy-id root@192.168.4.207
虚拟机B:
[root@pc207 ~]# ls /root/.ssh/
authorized_keys(别的机器传递过来的公钥)
虚拟机A:测试无密码验证
]# rsync -av --delete /todir/ root@192.168.4.207:/opt/
####################################################
二 安装inotify-tools工具软件,监控目录内容变化
1.具备inotify-tools工具软件
真机上传数据到虚拟机A
]$ ls /linux-soft/
]$ ls /linux-soft/01
]$ scp /linux-soft/01/tools.tar.gz root@192.168.4.7:/tmp/
2.虚拟机A查看是否上传成功
]# ls /tmp
]# tar -xf /tmp/tools.tar.gz -C /
]# ls /
]# ls /tools/
3.tar解包
]# ls /tools
]# tar -xf /tools/inotify-tools-3.13.tar.gz -C /usr/local/
]# ls /usr/local/
步骤1:安装开发工具
[root@svr7 ~]# yum -y install make gcc
步骤2: ./configure 配置,指定安装目录/功能模块等选项
]# cd /usr/local/inotify-tools-3.13/
]# ./configure
步骤3: make 编译,生成可执行的二进制程序文件
]# make
步骤4: make install 安装,将编译好的文件复制到安装目录
]# make install
]# ls /usr/local/bin/inotifywait #验证是否有该程序
inotifywait监控
• 基本用法
– inotifywait [选项] 目标文件夹
• 常用命令选项
– -m,持续监控(捕获一个事件后不退出)
– -r,递归监控、包括子目录及文件
– -q,减少屏幕输出信息
– -e,指定监视的 modify、move、create、delete、
attrib 等事件类别
三 书写一个shell脚本
循环解决重复性的操作
for 循环:适合书写有次数的循环
for i in 值列表
do
重复执行的代码
done
while 循环: 适合书写不限次数的循环
while [条件]
do
重复执行的代码
done
[root@svr7 /]# vim /root/rsync.sh
#!/bin/bash
while inotifywait -rq /todir/
do
rsync -av --delete /todir/ root@192.168.4.207:/opt/
done
[root@svr7 /]# chmod +x /root/rsync.sh
[root@svr7 /]# /root/rsync.sh & #放入后台运行
[root@svr7 /]# jobs -l #查看后台运行的进程
[root@svr7 /]# kill 7833 #杀死脚本程序
[1]+ 已终止 /root/rsync.sh
[root@svr7 /]# jobs -l
###################################################
DNS服务器的主从结构,备份主服务器的数据,解决单点故障
三台虚拟机
1.虚拟机A:主DNS服务器 192.168.4.7
2.虚拟机B:从DNS服务器 192.168.4.207
3.虚拟机C:客户端测试 192.168.4.10
###################################################
虚拟机A:构建主DNS服务器
1.安装软件包
[root@svr7 ~]# yum -y install bind bind-chroot
2.修改配置文件
[root@svr7 ~]# cp /etc/named.conf /etc/named.bak
[root@svr7 ~]# vim /etc/named.conf
options {
directory “/var/named”;
};
zone “tedu.cn” IN {
type master;
file “tedu.cn.zone”;
};
3.建立地址库文件
[root@svr7 ~]# cd /var/named/
[root@svr7 named]# cp -p named.localhost tedu.cn.zone
[root@svr7 named]# vim tedu.cn.zone
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 1.2.3.4
[root@svr7 named]# systemctl restart named
[root@svr7 ~]# nslookup www.tedu.cn 192.168.4.7
4.修改主配置文件,指定从服务器IP地址
[root@svr7 /]# vim /etc/named.conf
options {
directory “/var/named”;
allow-transfer { 192.168.4.207; }; #指定从服务器
};
zone “tedu.cn” IN {
type master;
file “tedu.cn.zone”;
};
5.修改地址库文件,进行声明从服务器
[root@svr7 /]# vim /var/named/tedu.cn.zone
tedu.cn. NS svr7
tedu.cn. NS pc207 #声明从服务器
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 1.2.3.4
[root@svr7 /]# systemctl restart named
##################################################
虚拟机B:从DNS服务器
1.安装软件包
[root@pc207 ~]# yum -y install bind bind-chroot
2.修改主配置文件
[root@pc207 ~]# vim /etc/named.conf
options {
directory “/var/named”;
};
zone “tedu.cn” IN {
type slave;
file “/var/named/slaves/tedu.cn.slave”;
#原则named用户,对该目录具备写入权限
masters { 192.168.4.7; }; #指定主DNS服务器位置
};
[root@pc207 ~]# systemctl restart named
[root@pc207 ~]# ls /var/named/slaves/
tedu.cn.slave
[root@pc207 ~]# nslookup www.tedu.cn 192.168.4.207
虚拟机C:测试
]# echo nameserver 192.168.4.7 > /etc/resolv.conf
]# echo nameserver 192.168.4.207 >> /etc/resolv.conf
]# cat /etc/resolv.conf
nameserver 192.168.4.7
nameserver 192.168.4.207
]# nslookup www.tedu.cn
###################################################
主从DNS服务器同步数据
1.修改数据必定是在主DNS服务器上完成
2.必须修改数据版本号,必须往大的方向修改
地址库文件内容:
2019122401 ; serial #数据版本号由10个数字组成
1D ; refresh #每隔1天,主从会进行同步数据
1H ; retry #重试时间间隔,每隔1个小时
1W ; expire #失效时间,1个星期
3H ) ; minimum #无效记录的缓存时间,3个小时
##################################################