课前回顾总结

  1. 关于计划任务清理日志,理论应该删除2个文件,实际删除了1个文件,why?
  1. xargs命令咋用,和管道"|"有啥区别?
  1. 测试samba是否可以通过hosts.deny做网络访问控制?
  1. 挂载samba共享目录出现mount error(112): Host is down Refer to the mount.cifs(8) manual page

 

###RSYNC实现数据同步

思考

以我们目前所学的知识,如何将A主机的一个目录的数据同步到B主机上?

课程目标

一、rsync介绍

二、rsync的语法

三、rsync作为命令来同步数据

1. 本机同步
2. 远程同步

课堂练习1:

  1. 使用rsync命令将本地/data目录的所有文件同步大本地/dir1目录里
  2. 使用rsync命令将本地的/data目录远程同步到另外一台虚拟主机的/backup目录里
  3. 当使用rsync命令远程同步时,远程主机的sshd服务关闭状态是否可以成功同步?

四、rsync作为服务来同步数据

将rsync托管给xinetd服务管理(做成daemon服务)有哪些好处?

主要涉及两个知识点: 1、xinetd服务 2、rsyncd.conf配置文件

需求:

将本地的/data目录数据文件使用服务同步到本地的/test目录

思路:

1. 不需要密码同步

步骤:

① 修改/etc/xinetd.d/rsync子配置文件

 

② 创建主配置文件/etc/rsyncd.conf

③重启xinetd服务

④ 测试验证

总结:

2. 需要密码同步

① 修改主配置文件

② 创建安全用户,该文件不能被其他人查看

说明: 服务端rsync服务是以什么用户运行,则必须保证secrets file文件拥有者必须是同一个;

假设root运行rsync --daemon,则secrets file的owner也必须是root;secrets file权限必须是600

③ 测试验证

课堂练习2:

  1. 将node1上的/data目录远程同步到node2的/backup目录里,要求node1上rsync作为后台服务运行
  2. 将node2上的/dir2目录内容推到node1上的/data目录里

 

五、rsync+inotify架构实现数据实时同步

需求1:将主机A上的/dir1目录的==数据实时同步==到A主机(本机)的/dir2目录里

1. 安装inotify工具

2. 编写脚本来同步

3. 测试验证

 

需求2:将主机A上的/data目录的数据实时同步到主机B的/backup目录里

思路:

  1. 在B主机上将rsync作为服务,不需要密码
  2. 使用ssh的免密码登录

错误:

rsync

作业1:

将主机A上的/share/dir1目录远程同步到主机B上的/backup/dir2目录里,要求如下:

1、把日志记录到/var/log/rsyncd.log

2、共享模块要求隐藏(也就是说客户端查看不到这个模块名)

3、并且同时只能1个客户端连接进行同步这个module

4、只能允许x.x.x.x(ip你自定义)同步这个module

5、只能早上9点到下午6点同步

 

作业2(扩展):

主机A上的/data/dir1目录和主机B上的/backup目录里的数据实现双向实时同步