在 Linux 下“同步多文件”通常指在多台机器之间或本地不同目录之间保持文件一致。下面按常见场景给你一套实用方案。
rsync(最常用)rsync -av --delete /src/ /dst/
-a:归档模式(保留权限、时间等)-v:显示过程--delete:删除目标中多余文件✅ 适合:备份、目录镜像
rsync + SSH(最推荐)rsync -avz --delete -e ssh user@host:/remote/path/ /local/path/
反向同步:
rsync -avz /local/path/ user@host:/remote/path/
✅ 安全、稳定、几乎万能
scp(简单但不高效)scp file1 file2 user@host:/path/
❌ 不支持增量同步
rsync + inotifyinotifywait -m -r -e modify,create,delete /src | \
while read; do
rsync -avz /src/ user@host:/dst/
done
lsyncd(推荐生产使用)# 安装
yum/apt install lsyncd
# 配置示例
settings {
logfile = "/var/log/lsyncd.log"
}
sync {
default.rsyncssh,
source = "/data",
host = "192.168.1.10",
targetdir = "/data"
}
Unison(双向同步)unison dir1 ssh://user@host//dir2
Ansible- copy:
src: files/
dest: /etc/app/
✅ 适合运维批量管理
| 场景 | 推荐 |
|---|---|
| 本地备份 | rsync |
| 远程同步 | rsync over ssh |
| 实时同步 | lsyncd |
| 双向同步 | unison |
| 集群 | NFS / GlusterFS |
| 批量服务器 | Ansible |
如果你能说明:
我可以给你更精确的命令或架构方案。