一样
rsync -av --delete source_file host:/dest_file # 跨主机备份
说明:本地模式和ssh模式是通过本地或远程shell,而独立服务运行模式则是让远程主机上运行rsyncd服务,使其监听在一个端口上,等待客户端的连接。
四:文件定时同步
rsync + cron计划任务
可以实现最快每1分钟同步一次文件。
说明:rsync使用的是基于传统的SSH协议的工作模式
例如:
root@ubuntu1804:~# crontab -e
# m h dom mon dow command
*/10 * * * * /usr/bin/rsync -av --delete /data/ 10.0.0.12:/back
五:文件实时同步
监听文件的相关属性事件,文件发生变化的时候就触发同步,使用inotify或者sersync监听文件的变化。
1、inotify + rsync
inotify:系统内核的一个监控服务,属于操作系统内核的一个特有机制,用于监控文件的信息变化。
inotify管理工具:来自于inotify-tools软件包,软件包里面包含了两个主要的工具inotifywait和inotifywatch。
- inotifywait: 在被监控的文件或目录上等待特定文件系统事件(open ,close,delete等)发生,常用于实时同步的目录监控(主要使用的就是这个工具)
- inotifywatch:收集被监控的文件系统使用的统计数据,指文件系统事件发生的次数统计
rsync:使用的是rsync的第三种工作模式(独立服务模式)。
例如:
# 1. 备份服务器启动 rsync 进程,进程启动后监听tcp的873端口。
# 2. 服务器的inotify发现数据发生变化后,就执行:
rsync -av /data ehigh@192.168.0.104::/databackup # 以服务的形式访问
# rsync -av /data rsync://192.168.0.104/databackup # 以协议的形式访问
2、sersync + rsync
sersync类似于inotify,同样用于监控,是基于inotify基础上开发而来,并且克服了inotify一个操作可能会产生重复的事件,这样可能会触发rsync的多次同步的问题。
sersync特点:
- 会对对linux系统文件系统产生的临时文件和重复的文件操作进行过滤,在结合rsync同步的时候,节省了运行时耗和网络资源
- 配置简单,提供了要给xml配置文件和一个二进制可执行文件
- 采用多线程模式
- 自带crontab功能
# sersync项目地址: https://code.google.com/archive/p/sersync/
# sersync下载地址: https://code.google.com/archive/p/sersync/downloads
例如: