在 Linux 下同步两台机器的文件,常见方法有以下几种,按使用频率和可操作性从简单到专业给你梳理:
rsync(最推荐 ✅)rsync -avz /本地/目录/ user@远程IP:/远程/目录/
示例:
rsync -avz /data/ root@192.168.1.100:/backup/
rsync -avz user@远程IP:/远程/目录/ /本地/目录/
-a:归档模式(保留权限、时间等)-v:显示过程-z:压缩传输-P:显示进度(断点续传)--delete:删除目标中源没有的文件(⚠谨慎)示例(完全镜像):
rsync -avz --delete /data/ root@192.168.1.100:/backup/
rsync -avz -e "ssh -p 2222" /data/ user@ip:/backup/
scp(适合一次性拷贝)scp -r /本地/目录 user@远程IP:/远程/目录
⚠ 缺点:不支持增量同步,大文件效率低
sftp(交互式)sftp user@远程IP
put 文件
get 文件
适合偶尔手动操作。
crontab -e
添加:
0 0 * * * rsync -avz /data/ root@192.168.1.100:/backup/
unison适合两台机器互相同步
unison /dir ssh://user@host//dir
NFS(一台为主)GlusterFSSyncthing(图形化、易用)| 场景 | 推荐 |
|---|---|
| 一次性拷贝 | scp |
| 定期备份 | rsync + cron |
| 实时同步 | rsync + inotify / syncthing |
| 双向同步 | unison |
如果你能说一下:
我可以给你一套最合适的同步方案。