在 Linux 下“同步两个目录”有多种方式,取决于你是一次性同步还是实时/定时同步,以及是否跨机器。下面按常见场景给你总结。
rsync(本地或远程都行)rsync -av /src/ /dst/
说明:
-a:归档模式(保留权限、时间等)-v:显示过程/src/ 末尾斜杠:表示同步目录内容,不是目录本身✅ 只同步有变化的部分(增量)
rsync -av --delete /src/ /dst/
⚠️ 危险:目标比源多出的文件会被删
rsync -av /local/ user@remote:/remote/path/
或反向:
rsync -av user@remote:/remote/path/ /local/
rsync + cron(半自动)# 每 5 分钟同步一次
*/5 * * * * rsync -a --delete /a/ /b/
*/5 * * * * rsync -a --delete /b/ /a/
⚠️ 不适合频繁修改同一文件
unison(推荐双向)unison /dir1 /dir2
特点:
安装:
sudo apt install unison # Debian/Ubuntu
inotify + rsyncinotifywait -m -r -e modify,create,delete /src | \
while read; do
rsync -a /src/ /dst/
done
lsyncd(生产推荐)sudo apt install lsyncd
配置示例:
sync {
default.rsync,
source = "/src",
target = "/dst"
}
NFS:Linux ↔ LinuxSSHFS:挂载远程目录sshfs user@host:/path /mnt
| 需求 | 推荐 |
|---|---|
| 一次性备份 | rsync |
| 定时同步 | rsync + cron |
| 双向同步 | unison |
| 实时同步 | lsyncd |
| 远程挂载 | sshfs / nfs |
如果你能告诉我:
我可以直接给你一条最合适的命令或配置。