循序渐进学运维-服务篇-rysnc+inotify实战

文章目录
前言
实验环境

  1. 配置ssh免秘钥登陆,且配置时间同步
    2 . 设置rsync的配置文件,确保两台服务器可以互相推送和监控
    a. 服务器1的配置:
  1. 安装xinetd,并启动
  2. 修改配置文件
    3) 修改密码文件 并修改权限
    4) 启动并查看
    b. 服务器2的配置
  3. 安装xinetd,并启动
  4. 修改配置文件
    3) 修改密码文件 并修改权限
    4) 启动并查看
  1. 配置inotify
    1) 下载epel源
    2) 安装inotify
    5 . 测试
    总结

前言

我们使用rsync可以实现触发式文件同步,但是通过crontab守护进程触发,同步数据时间上会有延迟,而inotify正好弥补了crontab的缺陷,可以实时监控文件系统的增删改查变化,当文件有任何变动时,都会触发rsync同步。很好的解决了rsync同步实时性的问题。

实验环境

服务器1 192.168.1.64 gaosh-64
服务器2 192.168.1.22 gaosh-1

实验步骤:

  1. 配置ssh免秘钥登陆,且配置时间同步
  2. 设置rsync的配置文件,确保两台服务器可以互相推送和监控
  3. 配置inotify
  4. 测试是否实现同步
1. 配置ssh免秘钥登陆,且配置时间同步
[root@gaosh-1 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
04:12:28:0a:04:3e:33:09:b7:c9:36:73:9b:ae:e3:de root@gaosh-1
The key's randomart image is:
+--[ RSA 2048]----+
|=...o..          |
|=ooo . .         |
|oBB .   .        |
|..++ o .         |
|    o   S        |
|   .             |
|    .            |
|  .o             |
| o+.E            |
+-----------------+
[root@gaosh-1 ~]# 

[root@gaosh-1 ~]# ssh-copy-id 192.168.1.64
The authenticity of host '192.168.1.64 (192.168.1.64)' can't be established.
RSA key fingerprint is 3a:13:d9:39:09:d1:7a:5c:0f:a7:08:ad:f9:ee:85:b5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.64' (RSA) to the list of known hosts.
root@192.168.1.64's password: 
Now try logging into the machine, with "ssh '192.168.1.64'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

配置时间同步:
服务器1:

[root@gaosh-1 ~]# yum install ntpdate
[root@gaosh-1 ~]# ntpdate -u 0.pool.ntp.org

服务器2:

[root@gaosh-64 ~]# ntpdate -u 0.pool.ntp.org
17 Jul 08:34:01 ntpdate[11325]: adjust time server 84.16.67.12 offset -0.032762 sec
[root@gaosh-64 ~]# date
2020年 07月 17日 星期五 08:34:04 CST
2 . 设置rsync的配置文件,确保两台服务器可以互相推送和监控
a. 服务器1的配置:
1) 安装xinetd,并启动
[root@gaosh-1 ~]# mkdir /gitbackup
[root@gaosh-1 ~]# yum install xinetd
[root@gaosh-1 ~]# service xinetd restart
停止 xinetd:                                              [失败]
正在启动 xinetd:                                          [确定]
[root@gaosh-1 ~]# 
2) 修改配置文件

创建备份目录

mkdir /gitbackup
[root@gaosh-1 ~]# chmod 600 /gitbackup
[root@gaosh-1 ~]# vim /etc/rsyncd.conf

uid = root
gid = root
usechroot = no
max connections = 20
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[backup]
path = /gitbackup
ignore errors
read only = false
writeonly = false
list = false
hosts allow = 192.168.1.0/24
hosts deny = 0.0.0.0/32
auth users = backuser
secrets file = /etc/rsync.passwd

3) 修改密码文件 并修改权限
[root@gaosh-1 ~]# cat /etc/rsync.passwd 
backuser:123456

[root@gaosh-1 ~]# chmod 600 /etc/rsync.passwd 
4) 启动并查看
[root@gaosh-1 ~]# rsync --daemon
[root@gaosh-1 ~]# ps -ef  |grep rsync
root      45336      1  0 08:45 ?        00:00:00 rsync --daemon
root      45338  45151  0 08:45 pts/2    00:00:00 grep rsync
[root@gaosh-1 ~]# 
b. 服务器2的配置
1) 安装xinetd,并启动
[root@gaosh-1 ~]# mkdir /gitbackup
[root@gaosh-1 ~]# yum install xinetd
[root@gaosh-1 ~]# systemctl restart  xinetd 
停止 xinetd:                                              [失败]
正在启动 xinetd:                                          [确定]
[root@gaosh-1 ~]# 
2) 修改配置文件

创建备份目录

mkdir /gitbackup
[root@gaosh-1 ~]# chmod 600 /gitbackup
[root@gaosh-1 ~]# vim /etc/rsyncd.conf

uid = root
gid = root
usechroot = no
max connections = 20
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[backup]
path = /gitbackup
ignore errors
read only = false
writeonly = false
list = false
hosts allow = 192.168.1.0/24
hosts deny = 0.0.0.0/32
auth users = backuser
secrets file = /etc/rsync.passwd

3) 修改密码文件 并修改权限
[root@gaosh-1 ~]# cat /etc/rsync.passwd 
backuser:123456

[root@gaosh-1 ~]# chmod 600 /etc/rsync.passwd 
4) 启动并查看

[root@gaosh-64 ~]# rsync --daemon
[root@gaosh-64 ~]# ps -ef |grep rsync
root      11524      1  0 08:49 ?        00:00:00 rsync --daemon
root      11527  11158  0 08:49 pts/0    00:00:00 grep --color=auto rsync
4. 配置inotify

服务器1:
1) 下载epel源

[root@gaosh-1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2) 安装inotify
yum install inotify-tools -y
5 . 测试

服务器2:

[root@gaosh-1 gitbackup]# pwd
/gitbackup
[root@gaosh-1 gitbackup]# touch test1
[root@gaosh-64 gitbackup]# rsync -avz /gitbackup/ backuser@192.168.1.17::backup
Password: 

服务器2
查看目录是否同步成功

[root@gaosh-64 gitbackup]# ls
test1
总结

rysnc+inotify实现代码或者文件的实时同步,很好的解决了crontab延迟的问题。

因为此时还没有学习shell脚本,所以暂时把shell脚本的内容省掉了,后期学完shell脚本后,我们在回来本篇文章增加脚本内容。实现自动同步的触发机制。

rsync系列文章:

【Linux】循序渐进学运维-服务篇-rysnc原理

【Linux】循序渐进学运维-服务篇-rysnc安装及使用

【Linux】循序渐进学运维-服务篇-rsync配置文件

【Linux】循序渐进学运维-服务篇-rsync实战

【Linux】循序渐进学运维-服务篇-inotify部署及应用

【Linux】循序渐进学运维-服务篇-rysnc+inotify实战

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值