rsync同步操作

同步 : 只传输变化的数据
     复制:完整的传输

• 命令用法
– rsync [选项...] 源目录 目标目录

• 同步与复制的差异
– 复制:完全拷贝源到目标
– 同步:增量拷贝,只传输变化过的数据

• 本地同步
– rsync [选项...] 本地目录1    本地目录2        //同步整个文件夹
– rsync [选项...] 本地目录1/    本地目录2      //只同步目录下的数据

• rsync操作选项
– -n:测试同步过程,不做实际修改
– --delete:删除目标文件夹内多余的文档
– -a:归档模式,相当于-rlptgoD
– -v:显示详细操作信息
– -z:传输过程中启用压缩/解压

[root@svr7 ~]# mkdir /dir1
[root@svr7 ~]# mkdir /nsd
[root@svr7 ~]# cp -r /home/ /dir1
[root@svr7 ~]# cp /etc/passwd /dir1
[root@svr7 ~]# ls /dir1
[root@svr7 ~]# rsync -avz  /dir1/   /nsd
[root@svr7 ~]# ls /nsd

[root@svr7 ~]# touch /dir1/1.txt
[root@svr7 ~]# ls /dir1/
[root@svr7 ~]# ls /nsd

[root@svr7 ~]# rsync -avz /dir1/   /nsd
[root@svr7 ~]# ls /dir1/
[root@svr7 ~]# ls /nsd

[root@svr7 ~]# touch /dir1/2.txt
[root@svr7 ~]# rsync -avz /dir1/   /nsd
[root@svr7 ~]# ls /nsd

[root@svr7 ~]# ls /dir1/
[root@svr7 ~]# ls /nsd
[root@svr7 ~]# touch /nsd/10.txt
[root@svr7 ~]# rsync -avz --delete /dir1/  /nsd
[root@svr7 ~]# ls /dir1/
[root@svr7 ~]# ls /nsd

#####################################################
 远程同步 rsync+SSH同步

– 下行:rsync [...] user@host:远程目录    本地目录
– 上行:rsync [...] 本地目录       user@host:远程目录

虚拟机A:
[root@svr7 ~]# rm -rf /opt/*
[root@svr7 ~]# cp /etc/passwd /opt/
[root@svr7 ~]# cp /etc/fstab  /opt/
[root@svr7 ~]# ls /opt/

# rsync -avz --delete   /opt/  root@192.168.4.207:/opt/

虚拟机B:
[root@pc207 ~]# ls /opt/

###################################################
 无密码的验证

公钥、私钥

1. 在虚拟机Svr7生成公钥、私钥
[root@svr7 ~]# ssh-keygen      #一路回车
[root@svr7 ~]# ls /root/.ssh    #公钥、私钥生成位置

2. 在虚拟机Svr7上,传递公钥到虚拟机pc207
[root@svr7 ~]# ssh-copy-id  root@192.168.4.207

[root@pc207 ~]# ls /root/.ssh/   #公钥存放在对方的,位置及名称
 authorized_keys

3. 在虚拟机Svr7上,测试
[root@svr7 ~]# ssh  root@192.168.4.207   #无需密码验证

########################################################
  实时同步  inotify-tools-3.13.tar.gz

真机上 :
  # scp /root/桌面/tools/inotify-tools-3.13.tar.gz root@192.168.4.7:/root
    
  虚拟机Svr7:
步骤1:安装gcc与make编译工具
步骤2:tar解包,释放源代码至指定目录
 # mkdir /myrpm/
 # tar -xf /root/inotify-tools-3.13.tar.gz  -C /myrpm/
 # ls /myrpm/

步骤3: ./configure 配置,指定安装目录/功能模块等选项
 # cd /myrpm/inotify-tools-3.13/
 # ./configure

步骤4: make 编译,生成可执行的二进制程序文件
步骤5: make install 安装,将编译好的文件复制到安装目录

[root@svr7 /]# which inotifywait
/usr/local/bin/inotifywait

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

最容易写成死循环
    while  [条件]
    do
           执行的语句
    done

A  /opt  --------》  B /opt

# inotifywait -mrq  /opt/

# rsync -avz --delete   /opt/  root@192.168.4.207:/opt/

实时同步的脚本
虚拟机Svr7:
[root@svr7 /]# vim  /root/rsync.sh
   #!/bin/bash
    while  inotifywait -rqq  /opt/
    do
         rsync -az --delete   /opt/  root@192.168.4.207:/opt/
    done
    
[root@svr7 /]# /root/rsync.sh  #运行脚本

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

虚拟机Svr7
  搭建基本的DNS
 1.安装bind、bind-chroot
 2.修改配置文件/etc/named.conf
 options {
        directory       "/var/named";
 };
 zone "tedu.cn" IN {
        type master;
        file "tedu.cn.zone";
  };
 3.建立相应的地址库文件/var/named/tedu.cn.zone
  tedu.cn.        NS      svr7.tedu.cn.
  svr7            A       192.168.4.7
  www             A       1.1.1.1

4.重起named服务,验证
    nslookup   www.tedu.cn  192.168.4.7
########################################################

Split分离解析(视图解析)

什么是分离解析
• 当收到客户机的DNS查询请求的时候
   – 能够区分客户机的来源地址
   – 为不同类别的客户机提供不同的解析结果(IP地址)
   – 为客户端提供网络最近资源

view "haha" {
    match-clients { 192.168.1.0/24; }
    zone "12306.cn" IN {
      12306.cn.zone;
   }; };

view "xixi" {
    match-clients { 192.168.2.0/24; }
    zone "12306.cn" IN {
      12306.cn.other;
    }; };

view "hehe" {
    match-clients { any; }
    zone "12306.cn" IN {
      12306.cn.any;
    }; };

##########################################################
   分离解析
          客户端:192.168.4.207------------>www.tedu.cn----》1.1.1.1
          客户端:其他人------------->www.tedu.cn----》2.2.2.2
   
    一旦使用view分离解析,所有的zone都必须在view中

1.修改配置文件/etc/named.conf
 options {
        directory       "/var/named";
 };
 view  haha  {
  match-clients  {   192.168.4.207;   };
  zone  "tedu.cn"  {
   type  master;
   file  "tedu.cn.haha";
    };
  };
 view  xixi  {
  match-clients  {    any;    };
  zone  "tedu.cn"  {
   type  master;
   file  "tedu.cn.xixi";
   };
 };
 2.分别建立tedu.cn.haha与tedu.cn.xixi,写入不同的解析结果
 3.重起named服务,验证  在svr7上测试解析  在pc207上测试解析

#########################################################
 PATH变量的作用:提供命令的搜寻路径

[root@svr7 /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

提示 命令没有找到?
        1.输入命令有误
        2.该命令没有安装
        3.该命令执行程序没有在PATH的路径中

########################################################
案例:

最新文章

  1. hdu4405 Aeroplane chess
  2. webmagic 增量爬取
  3. UVA 494 Kindergarten Counting Game
  4. IT人学习方法论(三):高效学习
  5. 关于VOID *在cl与gcc的不同(无意中发现)
  6. DBA常用SQL之会话与等待事件
  7. DateADD日期Sql
  8. 新发现的mbstowcs, mbstowcs_s函数,转换多字节到宽字符
  9. 忘记oracle用户名密码怎么办?
  10. ssm框架的搭建实现CRUD的操作
  11. Caused by: java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual tha
  12. Elasticsearch-精确查找
  13. python-selenium,关于页面滑动的操作
  14. Tp3.2 复合查询
  15. react-native-storage 使用笔记 持续更新
  16. 20155202张旭 Exp6 信息收集与漏洞扫描
  17. AtomicReference,AtomicStampedReference与AtomicMarkableReference的区别
  18. 李白打酒|2014年蓝桥杯B组题解析第三题-fishers
  19. lua接收图片并进行md5处理
  20. 定义类/实例(Class)

热门文章

  1. 大碗宽面Beta迭代阶段第十二周会议记录
  2. kubernetes使用kubeadm升级集群
  3. (转)深入剖析Java中的装箱和拆箱
  4. (转)使用OpenGL显示图像(三)绘制Shapes
  5. SQL server 2012序列号 注册码
  6. python主要探索函数
  7. 大数据学习之BigData常用算法和数据结构
  8. SQLserver服务无法启动
  9. python作业/练习/实战:下载QQ群所有人的头像
  10. 如何深入理解Java泛型