Bootstrap

scp|rsync|sersync文件同步

文件同步

工具介绍

scp

  • ssh服务三大组件(ssh,scp,sftp)之一

  • scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令

  • 特点:全量同步,速度慢,效率低,scp不能实现远程删除,易造成垃圾文件堆积问题

rsync

  • rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件
  • 增量同步,文件传输效率高,增量传输,只对变更的部分进行传送
  • 但是当文件变动,不能够实时同步

sersync

  • inotify-tools和sersync属于同类

  • sersync是基于inotify+rsync的大量文件的多服务器自动同步程序

  • 使用Linux 2.6 内核的 inotify 监控 Linux 文件系统事件,被监听目录下如果有文件发生修改,sersync 将通过内核自动捕获到事件,并将该文件利用 rsync 同步到多台远程服务器。sersync 仅仅同步发生增、删、改事件的单个文件或目录,不像rsync镜像同步那样需要比对双方服务器整个目录下数千万的文件,并且支持多线程同步,因此效率非常高

  • 特点

    • sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤,所以在结合rsync同步的时候,节省了运行时耗和网络资源,因此更快。
    • 相比较scp,rsync;sersync配置简单,其中bin目录下已经有基本上静态编译的二进制文件,配合bin目录下的xml配置文件直接使用即可
    • 使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态
    • 出错处理机制:通过失败队列对出错的文件重新同步,如果仍旧失败,则按设定时长对同步失败的文件重新同步
    • 自带crontab功能,只需在xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次,无需再额外配置crontab功能
    • 支持socket与http插件扩展

同步文件实现

虚拟机 主机名 IP地址 担当
server01 web1.master 192.168.139.128 源服务器
server02 web2.slave 192.168.139.129 目标服务器

scp同步

免密登录
[root@web1 ~]# ssh-keygen 
[root@web1 ~]# ssh-copy-id 192.168.139.129

更改业务代码
[root@web1 tp5shop]# touch text.txt

scp同步
[root@web1 tp5shop]# scp -r /usr/local/nginx/html/tp5shop/ [email protected]:/usr/local/nginx/html/

查看
[root@web2 tp5shop]# ls
text.txt
  • 该业务可以编写同步脚本实现,再编写计划任务,定时执行脚本,实现定时全量同步

rsync

免密登录
[root@web1 ~]# ssh-keygen 
[root@web1 ~]# ssh-copy-id 192.168.139.129

更改业务代码
[root@web1 tp5shop]# rm -rf file1.txt 

rsync同步
[root@web1 tp5shop]# rsync -av /usr/local/nginx/html/tp5shop [email protected]:/usr/local/nginx/html

rsync同步,默认没有删除,添加--delete可以删除
[root@web1 tp5shop]# rsync -av --delete /usr/local/nginx/html/tp5shop [email protected]:/usr/local/nginx/html
  • 定时同步(20s同步)
[root@web1 tp5shop]# cd
[root@web1 ~]# mkdir file_rsync
[root@web1 ~]# cd file_rsync/
[root@web1 file_rsync]# vim rsync_20s.sh
[root@web1 file_rsync]# cat rsync_20s.sh 
#!/bin/bash

TIME=20
func1(){
   
	echo `date "+%F %T"` `rsync -av --delete /usr/local/nginx/html/tp5shop root@192.168.139.129:/usr/local/nginx/html` >> /root/file_rsync

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;