首页
运维教程
Linux基础
系统服务
系统架构
数据库
shell脚本
虚拟化
大数据
DevOps
企业案例
运维开发
python
go语言
运维安全
行业资讯
网络基础
系统安全
运维面试
学习路线
学习方法
面试题库
职场解惑
常用软件
运维软件
办公软件
书籍资源
日知录
招聘信息
读书计划
书单
关于我们
首页 运维教程Linux基础【Linux】循序渐进学运维-服务篇-rysnc+inotify实战

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

文章目录

前言
实验环境
1. 配置ssh免秘钥登陆,且配置时间同步
2 . 设置rsync的配置文件,确保两台服务器可以互相推送和监控
a. 服务器1的配置:
1) 安装xinetd,并启动
2) 修改配置文件
3) 修改密码文件 并修改权限
4) 启动并查看
b. 服务器2的配置
1) 安装xinetd,并启动
2) 修改配置文件
3) 修改密码文件 并修改权限
4) 启动并查看
4. 配置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免秘钥登陆,且配置时间同步
4. 设置rsync的配置文件,确保两台服务器可以互相推送和监控
5. 配置inotify
8. 测试是否实现同步

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实战

扫码关注下方公众号《极客运维之家》:

架构师群还有50个名额,可以加我微信zmkj512拉你进群

本文链接:http://www.geekyunwei.com/1891.html

网友评论comments

发表评论

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

暂无评论

Copyright © 2021 极客运维 备案号: 京ICP备2021004281号
扫二维码
扫二维码
返回顶部