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

Linux rsync同步操作和inotify实时同步 、 Cobbler装机平台 (SERVICE06—-DAY21)[通俗易懂]rsync同步操作•命令用法–rsync[选项…]源目录目标目录•同步与复制的差异–复制:完全拷贝源到目标–同步:增量拷贝,只传输变化过的数据同步控制•rsync操作选项–-n:测试同步过程,不做实际修改––delete:删除目标文件夹内多余的文档–-a:归档模式,相当于-rlptgoD–-v:显示详细操作信息–-z:传输过程中启用压缩/解…

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

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个小时

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • BackTrack5 (BT5)无线password破解教程之WPA/WPA2-PSK型无线password破解

    BackTrack5 (BT5)无线password破解教程之WPA/WPA2-PSK型无线password破解

    2021年11月15日
    41
  • bytebuffer常用方法_bytebuffer.get

    bytebuffer常用方法_bytebuffer.getByteBuffer的心得

    2022年10月2日
    0
  • mysql自定义函数命名_MySQL自定义函数[通俗易懂]

    mysql自定义函数命名_MySQL自定义函数[通俗易懂]在使用MySQL的过程中,MySQL自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数。自定义函数是一种与存储过程十分相似的过程式数据库对象。它与存储过程一样,都是由SQL语句和过程式语句组成的代码片段,并且可以被应用程序和其他SQL语句调用。自定义函数与存储过程之间存在几点区别:1.自定义函数不能拥有输出参数,这是因为自定义函数自身就是输出参数;而存储过程可以拥有输出参数…

    2022年9月8日
    0
  • flask表单处理_html表单的提交方法

    flask表单处理_html表单的提交方法这里介绍一下Flask表单提交相关的方法,还是以代码实例为主。首先,Flask模板中表单提交代码与我们一般写的H5表单无异,当然,Flask也提供了表单类,Flask-WTF扩展。这里只介绍常规的表单提交方法。首先是模板类:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"&g…

    2022年9月1日
    1
  • python下载hashlib命令_python之hashlib模块[通俗易懂]

    python下载hashlib命令_python之hashlib模块[通俗易懂]importhashlib#md5加密工具,md5是不可逆的,所以只能比较密文,不能比较明文,python中不仅仅提供md5加密方法,还提供sha1,sha224,sha256,sha384,sha512,MD5加密算法test_md5=hashlib.md5()test_md5.update(bytes(‘123′,encoding=’utf-8’))ret=test_md5.hexd…

    2022年6月1日
    40
  • Centos7安装Mysql5.7最全教程[通俗易懂]

    Centos7安装Mysql5.7最全教程[通俗易懂]最近需要在Linux系统上使用MySQL,记录一下安装过程吧,为后来的同学排除一些问题。更新yumyumupdate-y1.安装wget工具我安装到了/export/install这里可以进入你们所想要安装的地方cd/先进入你想安装的位置,此后全部在此文件夹进行操作。sudoyuminstall-ywget2.使用wget下载mysqlyum源:wgethttps://dev.mysql.com/get/mysql80-community-release-el

    2022年5月2日
    85

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号