Sincronização de dados em tempo real usando sersync
-
- O processo de nascimento do sersync
- Premissa de implantação
- Configurar servidor rsync
- Implantar sersync
- Modificar arquivo de configuração sersync
- parâmetros comuns do sersync
- Use arquivos de serviço para implementar inicialização automática na inicialização
- Depuração de serviço de sincronização em tempo real
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
sersync
Ele é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.sersync
A configuração é muito simples, o arquivo binário e o arquivo de configuração xml foram compilados estaticamente e podem ser usados diretamente.sersync
O uso de multithreading para sincronização, especialmente ao sincronizar arquivos maiores, pode garantir que vários servidores permaneçam sincronizados em tempo real.sersync
Existe 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.sersync
Não só é possível实时同步
, mas também vem com elecrontab功能
, 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.sersync
Existemsocket
extensõeshttp插件
para atender às necessidades de desenvolvimento secundário.
Premissa de implantação
- Instalado
inotify-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 rsync
emclient端
- 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
- 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
# 将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 eficazsource /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
rsyncd
Configuração do modo Daemon:rsyncd_confxml.xml
ssh免密
Configuração do modo:ssh_key_confxml.xml
parâmetros comuns do sersync
# 查看 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.xml o 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