Linux rsync同步操作和inotify实时同步 、 Cobbler装机平台 (SERVICE06—-DAY21)[通俗易懂]

2022-09-09 10:23:49 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

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 ]

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

代码语言:javascript复制
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个小时

##################################################

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161300.html原文链接:https://javaforall.cn

0 人点赞