栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

0基础linux运维教程 sersync介绍

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

0基础linux运维教程 sersync介绍

rsync+inotify的缺点

- 1、inotify最大的不足是会产生重复事件,或者同一个目录下多个文件的操作会产生多个事件(例如,当监控目录中有5个文件时,删除目录时会产生6个监控事件),从而导致重复调用rsync命令。而且vim文件时,inotify会监控到产生临时文件.swp和.swx等的事件,但这些事件相对于rsync来说是不应该被监控的。

- 2、inotifywait工具的存在缺陷,当向监控目录下拷贝复杂层次目录(多层次目录中包含文件),或者向其中拷贝大量文件时,**inotifywait经常会随机性地遗漏某些文件**。

- 3、并发如果大于200个文件(10-100K),同步会有延迟

- 4、监控到事件后,调用rsync同步是单线程的(加&才可以并发)

**由于上述缺陷的存在,使得通过脚本实现的inotify+rsync几乎很难达到完美,于是sersync应运而生!**

sersync是金山的周洋基于rsync+inotify-tools开发的工具,它克服了inotify的缺陷,可以过滤重复事件减轻负担,并且自带crontab功能、多线程调用rsync、失败重传等功能,详解如下

```bash

# 1、sersync的优点:

1、sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤,所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。

2、sersync配置很简单,其中bin目录下已经有静态编译好的2进制文件,配合bin目录下的xml配置文件直接使用即可。

3、sersync使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态。

4、sersync有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则按设定时长对同步失败的文件重新同步。

5、sersync自带crontab功能,只需在xml配置文件中开启,即可按要求隔一段时间整体同步一次。无需再额外配置crontab功能。

6、sersync可以二次开发。

# 2、sersync的缺点:

sersync有重传机制(内置的定时任务),但是只重传一次,如果重传失败就会清空重传队列,即清空/tmp/rsync_fail_log.sh文件。这样就会造成sersync服务恢复正常后(即可以同步文件),数据同步的两个服务器数据不一致的现象。因为,/tmp/rsync_fail_log.sh文件为空,而sersync只对发生变化的文件做实时同步(ps:sersync默认每隔十个小时做一次完整的数据同步)。

```

注意

```bash

(1)当同步的目录数据量不大时,建议使用rsync+inotify

(2)当同步的目录数据量很大时(几百G甚至1T以上)文件很多时,建议使用rsync+sersync

```

### 8.2 sersync实战

1)环境准备

| 主机   | IP            | 安装服务                |

| ------ | ------------- | ----------------------- |

| local  | 192.168.12.17 | rsync、inotify、sersync |

| remote | 192.168.12.39 | rsync服务端             |

2)服务端安装与配置好rsync守护进程(略)

3)客户端安装rsync和inotify

```bash

yum install -y rsync inotify-tools

```

4)客户端安装sersync

```bash

# 1、下载

wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz

# 2、解压即可用

tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz

# 3、把软件移动到/usr/local/sersync下

mv GNU-Linux-x86 /usr/local/sersync

# 4、制作环境变量

echo "export PATH=$PATH:/usr/local/sersync" >> /etc/profile

source /etc/profile

```

修改配置

```bash

[root@local ~]# vim /usr/local/sersync/confxml.xml 

    # 监听的主机和端口

    

    # 是否开启调试模式,下面所有出现false和true的地方都分别表示关闭和开启的开关

    

    # 监控的是否是xfs文件系统,默认为false

    

    # 是否启用监控的筛选功能,筛选的文件将不被监控

    

    

    

    

    

    

    # 监控的事件,默认监控的是delete/createFolder/closeWrite/moved_from/moved_to

    

    

    

    

    

    

    

    

    

    

      # rsync命令的配置段

      # 监控的本地目录

        # 默认为rsync协议认证,除非下面开启ssh start

        # 所以此处为远程主机的ip与模块名,远端要开启rsync守护进程

         

        

        

    

    

        # 指定rsync选项,默认为-artuz

        

        # 开启认证,需要虚拟用户和密码文件,默认是关闭的

        

        # 如果端口不是873则需要更改

        

        # 超时时间

        

        # 是否使用远程shell模式而非rsync daemon运行rsync命令

        

    

    # 错误重传

    

    # 是否开启crontab功能,默认关闭,每隔600分钟进行一次全备

    

          # crontab定时传输的筛选功能

        

        

        

    

    

    

    # 以下不需要修改

    

        

    

        

        

    

    

    

    

        

    

    

    

    

        

        

        

    

    

```

依据配置文件创建密码文件并授权

```bash

echo 123> /etc/egon.password

chmod 600 /etc/egon.password

```

sersync2命令

```bash

[root@local ~]# sersync2 -h

set the system param

execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches

execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events

parse the command param

_______________________________________________________

参数-d:启用守护进程模式

参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍

c参数-n: 指定开启守护线程的数量,默认为10个

参数-o:指定配置文件,默认使用confxml.xml文件

参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块

参数-m:单独启用其他模块,使用 -m socket 开启socket模块

参数-m:单独启用其他模块,使用 -m http 开启http模块

不加-m参数,则默认执行同步程序

```

由此可见,sersync2命令总是会先设置inotify相关的系统内核参数。

所以,只需执行以下简单的命令即可。

```bash

/usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml

```

如果在本机要监控多个目录,即sersync多实例,只需分别配置不同配置文件,然后使用sersync2指定对应配置文件运行即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/320600.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号