linux服务器文件同步是运维工作里的常见需求,无论是多台服务器之间的数据备份,还是本地与远程服务器的文件同步,都需要合适的工具来保障同步效率和数据一致性。不同的同步软件在功能、适用场景上存在明显差异,下面为大家介绍几款常用的linux服务器文件同步工具。

rsync
rsync是最经典的linux文件同步工具,支持本地和远程同步,采用增量同步机制,只会传输发生变化的数据块,大幅降低同步所需的带宽和时间。它支持保留文件权限、时间戳、软硬链接等属性,还支持通过ssh协议进行加密传输,安全性较高。
安装方式
大多数linux发行版的官方源都包含rsync,可直接通过包管理器安装:
# CentOS/RHEL系统安装 yum install rsync -y # Ubuntu/Debian系统安装 apt install rsync -y
基础同步示例
将本地/data目录同步到远程服务器的/backup目录:
rsync -avz /data/ root@192.168.0.1:/backup/
参数说明:-a表示归档模式,保留文件属性;-v显示同步过程;-z传输时压缩数据。
lsyncd
lsyncd是基于rsync和inotify的文件实时同步工具,能够监控指定目录的文件变化,一旦检测到文件新增、修改、删除,就会自动触发rsync同步,不需要手动执行同步命令,适合需要实时同步的场景。
安装方式
# CentOS/RHEL系统安装,需要先开启epel源 yum install epel-release -y yum install lsyncd -y # Ubuntu/Debian系统安装 apt install lsyncd -y
基础配置示例
配置文件通常位于/etc/lsyncd.conf,基础配置如下:
settings {
logfile = "/var/log/lsyncd.log",
statusFile = "/var/log/lsyncd.status"
}
sync {
default.rsync,
source = "/data/", -- 本地监控目录
target = "root@192.168.0.1:/backup/", -- 远程目标目录
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true
}
}
unison
unison是双向文件同步工具,支持两个目录之间的双向同步,能够自动处理文件的冲突情况,适合需要在两台服务器之间互相同步文件的场景,比如两台web服务器的静态资源需要保持一致,且双方都可能有文件更新。
安装方式
# CentOS/RHEL系统安装 yum install unison -y # Ubuntu/Debian系统安装 apt install unison -y
基础同步示例
同步本地/data目录和远程服务器的/backup目录:
unison /data/ ssh://root@192.168.0.1//backup/
首次同步会建立基准,后续同步只会处理变化的文件,遇到冲突时会提示用户选择处理方式。
syncthing
syncthing是开源的分布式文件同步工具,不需要中心服务器,支持多节点之间的文件同步,所有传输数据都经过加密,跨平台支持好,除了linux服务器,还支持Windows、macOS等系统,适合多设备、多节点的文件同步场景。
安装方式
可以从官方仓库下载对应系统的安装包,或者通过包管理器安装:
# 添加syncthing官方源后安装,以Ubuntu为例 curl -s https://syncthing.net/release-key.txt | apt-key add - echo "deb https://apt.syncthing.net/ syncthing stable" | tee /etc/apt/sources.list.d/syncthing.list apt update apt install syncthing -y
基础使用
启动syncthing后会生成配置文件,通过浏览器访问默认的127.0.0.1:8384端口可以进行节点添加、同步目录配置等操作,添加对方节点的设备ID后,配置需要同步的目录即可自动完成同步。
工具对比
不同同步工具的特性和适用场景如下:
| 工具名称 | 同步方向 | 同步模式 | 适用场景 |
|---|---|---|---|
| rsync | 单向 | 手动/定时 | 常规备份、一次性同步、增量同步需求 |
| lsyncd | 单向 | 实时 | 需要实时同步文件的场景,如代码发布、日志同步 |
| unison | 双向 | 手动/定时 | 两台服务器双向更新文件的场景 |
| syncthing | 多向 | 实时 | 多节点、跨平台文件同步场景 |
用户可以根据自身的同步需求、服务器环境选择合适的工具,比如只需要简单的单向备份可以选择rsync,需要实时同步可以选择lsyncd,多节点同步可以选择syncthing。