Sincronização de dados em tempo real usando sersync

O processo de nascimento do sersync

Autor do Sersync: Ex-Kingsoft Company 周洋(Huajiao Live)
sincronização de dados em tempo real (script inotify + rsync) -> Desenvolver programa de sincronização em tempo real (inotify + rsync)

Princípio: https://www.bilibili.com/video/BV1TK411B7hU

Repositório de código: https://github.com/omaidb/sersync3
https://code.google.com/archive/p/sersync/source/default/source

Endereço do projeto: https://github.com/omaidb/sersync3
https://github.com/wsgzao/sersync

Endereço de download do projeto: https://code.google.com/archive/p/sersync/downloads

Referência:
https://blog.csdn.net/m0_46095955/article/details/104032057
https://linux.cn/article-6032-1.html

  1. sersyncEle é c++escrito em Python e filtra arquivos temporários e operações repetidas de arquivos geradas pelo sistema de arquivos do sistema Linux (veja o apêndice para detalhes, este script de filtragem não está implementado), portanto, quando combinado com a sincronização rsync, ele economiza consumo de tempo de execução e recursos de rede. . Portanto é mais rápido.
  2. sersyncA configuração é muito simples, o arquivo binário e o arquivo de configuração xml foram compilados estaticamente e podem ser usados ​​diretamente.
  3. sersyncO uso de multithreading para sincronização, especialmente ao sincronizar arquivos maiores, pode garantir que vários servidores permaneçam sincronizados em tempo real.
  4. sersyncExiste um mecanismo de tratamento de erros para ressincronizar os arquivos com erros através da fila de falhas. Se ainda falhar, os arquivos que não foram sincronizados serão ressincronizados de acordo com o tempo definido.
  5. sersyncNão só é possível 实时同步, mas também vem com ele crontab功能, você só precisa ativá-lo no arquivo de configuração xml e pode sincronizar todo o sistema em intervalos conforme necessário. Nenhuma configuração adicional da função crontab é necessária.
  6. sersyncExistem socketextensões http插件para atender às necessidades de desenvolvimento secundário.

Premissa de implantação

  • Instaladoinotify-tools
  • rsync está 守护进程模式ou configuradossh免密
# 安装inotify-tools
yum install -y inotify-tools

# 安装rsync
yum install -y rsync

Configurar servidor rsync

https://blog.csdn.net/omaidb/article/details/121746997


Implantar sersync

一般情况下implantado rsyncemclient端

  1. Baixe o pacote binário de software

https://github.com/omaidb/qiaofei_notes/tree/main/shell_code/sersync

https://github.com/wsgzao/sersync
sersync2.5.4 é a versão final do software.

# 下载sersync二进制包
wget -c https://raw.githubusercontent.com/wsgzao/sersync/master/sersync2.5.4_64bit_binary_stable_final.tar.gz
  1. Descompacte o software e salve-o no diretório correspondente
# 创建目录
mkdir -p /usr/local/sersync

# 解压文件
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz

# 查看解压的目录结构
tree GNU-Linux-x86

imagem.png

# 将sersync2修改为sersync
mv GNU-Linux-x86/sersync2 GNU-Linux-x86/sersync

# 将目录下文件移动到/usr/local/sersync/
mv GNU-Linux-x86/* /usr/local/sersync/

Configure a variável de caminho do sersync

vim /etc/profile.d/sersync.sh

# 指定sersync程序的路径
export PATH="$PATH:/usr/local/sersync"

Torne a variável de caminho eficaz
source /etc/profile.d/sersync.sh


Modificar arquivo de configuração sersync

vim /usr/local/sersync/confxml.xml

Com 详细注释: https://github.com/omaidb/qiaofei_notes/tree/main/config_bak/sersync配置文件 2 arquivos de configuração

  • rsyncdConfiguração do modo Daemon:rsyncd_confxml.xml
  • ssh免密Configuração do modo:ssh_key_confxml.xml

parâmetros comuns do sersync

imagem.png

# 查看 sersync 参数
sersync -h
parâmetro explicar
-d Habilitar modo daemon
-r Antes de monitorar, use o comando rsync para enviar o diretório de monitoramento e o host remoto.
-n Especifique o número de threads daemon a serem iniciados, o padrão é 10
-o Especifique 配置文件, use confxml.xmlo arquivo por padrão
-m refreshCDN Habilitar atualização do plugin do módulo CDN
-m socket Habilitar plug-in de módulo de soquete
-m http Habilitar plugin de módulo http
不加-m parâmetro O programa de sincronização é executado por padrão
# 后台启动sersync同步服务程序
## -d 启用守护进程模式
## -r 在监控前,将监控目录与远程主机用rsync命令推送一遍
## -o 指定配置文件
sersync -dro /usr/local/sersync/confxml.xml

Use arquivos de serviço para implementar inicialização automática na inicialização

vim /etc/systemd/system/sersync.service

# /etc/systemd/system/sersync.service
[Unit]
Description= sersync数据实时同步服务
# 当指定的配置文件存在时,服务才会启动
ConditionPathExists=/usr/local/sersync/confxml.xml

[Service]
# 启动命令,不要加-d
ExecStart=/usr/local/sersync/sersync -ro /usr/local/sersync/confxml.xml
# 服务停止时的命令
## 命令要以绝对路径执行
ExecStop=/usr/bin/killall sersync

[Install]
WantedBy=multi-user.target

Depois de salvar,重载服务

# 重载服务
systemctl daemon-reload

# 设置开机自启动
systemctl enable --now sersync.service

Depuração de serviço de sincronização em tempo real

Modifique 配置文件os parâmetros e prossiga调试
vim /usr/local/sersync/confxml.xml

<!-- 开启debug模式 -->
<debug start="true"/>

debug模式Após modificação重启服务

# 重启服务
systemctl restart sersync

# journalctl实时查看日志
journalctl -u sersync -f

前台运行Ver usando详细日志

# 停止服务
systemctl stop sersync

# 不加-d以前台模式打印日志输出
sersync -ro /usr/local/sersync/confxml.xml

Acho que você gosta

Origin blog.csdn.net/omaidb/article/details/133091969
Recomendado
Clasificación