温馨提示×

如何同步linux两台文件

小樊
35
2026-09-10 12:48:20
栏目: 智能运维

在 Linux 下同步两台机器的文件,常见方法有以下几种,按使用频率和可操作性从简单到专业给你梳理:


一、使用 rsync(最推荐 ✅)

1️⃣ 基本用法(本地 → 远程)

rsync -avz /本地/目录/ user@远程IP:/远程/目录/

示例:

rsync -avz /data/ root@192.168.1.100:/backup/

2️⃣ 远程 → 本地

rsync -avz user@远程IP:/远程/目录/ /本地/目录/

3️⃣ 常用参数说明

  • -a:归档模式(保留权限、时间等)
  • -v:显示过程
  • -z:压缩传输
  • -P:显示进度(断点续传)
  • --delete:删除目标中源没有的文件(⚠谨慎)

示例(完全镜像):

rsync -avz --delete /data/ root@192.168.1.100:/backup/

4️⃣ SSH 指定端口

rsync -avz -e "ssh -p 2222" /data/ user@ip:/backup/

二、使用 scp(适合一次性拷贝)

scp -r /本地/目录 user@远程IP:/远程/目录

⚠ 缺点:不支持增量同步,大文件效率低


三、使用 sftp(交互式)

sftp user@远程IP
put 文件
get 文件

适合偶尔手动操作。


四、自动定时同步(crontab + rsync)

每天凌晨同步

crontab -e

添加:

0 0 * * * rsync -avz /data/ root@192.168.1.100:/backup/

五、双向同步(高级)

1️⃣ unison

适合两台机器互相同步

unison /dir ssh://user@host//dir

2️⃣ 分布式文件系统

  • NFS(一台为主)
  • GlusterFS
  • Syncthing(图形化、易用)

六、安全建议

  • 使用 SSH 密钥登录
  • 限制 rsync 用户权限
  • 公网环境务必加密

七、如何选择?

场景 推荐
一次性拷贝 scp
定期备份 rsync + cron
实时同步 rsync + inotify / syncthing
双向同步 unison

如果你能说一下:

  • 内网还是公网
  • 是否 实时同步
  • 文件大小 / 数量

我可以给你一套最合适的同步方案

0