温馨提示×

如何同步linux多文件

小樊
82
2026-09-25 19:40:03
栏目: 智能运维

在 Linux 下“同步多文件”通常指在多台机器之间或本地不同目录之间保持文件一致。下面按常见场景给你一套实用方案。


一、本地目录之间同步(同一台机器)

1. rsync(最常用)

rsync -av --delete /src/ /dst/
  • -a:归档模式(保留权限、时间等)
  • -v:显示过程
  • --delete:删除目标中多余文件

✅ 适合:备份、目录镜像


二、多台 Linux 机器之间同步

1. rsync + SSH(最推荐)

rsync -avz --delete -e ssh user@host:/remote/path/ /local/path/

反向同步:

rsync -avz /local/path/ user@host:/remote/path/

✅ 安全、稳定、几乎万能


2. scp(简单但不高效)

scp file1 file2 user@host:/path/

❌ 不支持增量同步


三、实时同步(文件一变动就同步)

1. rsync + inotify

inotifywait -m -r -e modify,create,delete /src | \
while read; do
  rsync -avz /src/ user@host:/dst/
done

2. lsyncd(推荐生产使用)

# 安装
yum/apt install lsyncd

# 配置示例
settings {
  logfile = "/var/log/lsyncd.log"
}
sync {
  default.rsyncssh,
  source = "/data",
  host = "192.168.1.10",
  targetdir = "/data"
}

四、多台机器“双向/集群同步”

1. Unison(双向同步)

unison dir1 ssh://user@host//dir2

2. 分布式文件系统(高级)

  • NFS:共享目录
  • GlusterFS / Ceph:多机文件一致
  • DRBD:块级同步

五、配置文件 / 多服务器批量同步

Ansible

- copy:
    src: files/
    dest: /etc/app/

✅ 适合运维批量管理


六、选择建议

场景 推荐
本地备份 rsync
远程同步 rsync over ssh
实时同步 lsyncd
双向同步 unison
集群 NFS / GlusterFS
批量服务器 Ansible

如果你能说明:

  • 是本地还是远程
  • 是否实时
  • 是单向还是双向
  • 文件数量/大小

我可以给你更精确的命令或架构方案。

0 踩