文章总结: Unison是一款双向文件同步工具支持跨平台能智能合并修改并解决冲突适合多设备同步核心用法包括本地和远程同步通过配置文件实现自动同步和忽略规则高级技巧如定时同步和带宽限制与Rsync相比更适合双向同步场景建议使用配置文件管理规则并结合cron实现自动化
综合评分: 85
文章分类: 安全工具,解决方案
双向文件同步最佳工具-unison
原创
Titans
骏之安科技知识库
2025年8月6日 11:52
河南
Unison 是一款 双向文件同步工具,支持跨平台(Linux/macOS/Windows),能智能合并两端的修改,解决冲突,适合多设备间的文件同步。以下是它的核心用法和高级技巧:
一、核心特点
- 1. 双向同步:自动检测源端和目的端的更改,合并冲突。
- 2. 跨平台:支持 Windows、Linux、macOS。
- 3. 增量同步:仅传输变化部分,节省带宽。
- 4. 冲突处理:提供交互式解决选项。
- 5. 支持 SSH/RSH:加密传输,适合远程同步。
二、安装方法
Linux (Debian/Ubuntu)
sudo apt install unison
macOS (Homebrew)
brew install unison
三、基础用法
1. 本地目录同步
unison /path/to/local1 /path/to/local2
- • 首次运行会提示确认同步方向,输入
y确认。
2. 远程同步(SSH)
unison /local/dir ssh://user@remote//remote/dir
- • 注意远程路径格式:
//后接绝对路径(如//home/user/data)。
3. 自动接受默认操作(非交互模式)
unison -auto /path1 /path2
- •
-auto:自动处理无冲突的更改。
4. 忽略特定文件/目录
创建配置文件 ~/.unison/default.prf:
# 忽略 .git 目录和临时文件
ignore = Name .git
ignore = Name *.tmp
然后运行:
unison -batch /path1 /path2
- •
-batch:非交互模式,依赖配置文件规则。
四、高级用法
1. 定时同步(结合 cron)
crontab -e
添加以下内容(每天凌晨 3 点同步):
0 3 * * * unison -batch /local/dir ssh://user@remote//remote/dir >> /var/log/unison.log 2>&1
2. 强制单向同步(覆盖目标)
unison -force /source /target -confirmmerge=false -prefer /source
- •
-prefer:指定优先保留的版本。
3. 同步后执行命令
# 在配置文件中添加
postcmd = chmod -R 755 /target/dir
4. 限制带宽(避免占用网络)
unison -sshargs "-o Compression=no -l 1000" /local ssh://remote//remote
- •
-l 1000:限制 SSH 带宽为 1000 KB/s。
五、配置文件示例
~/.unison/myconfig.prf:
# 同步目录
root = /home/user/docs
root = ssh://user@server//backup/docs
# 忽略规则
ignore = Name *.log
ignore = Path /tmp
# 自动合并策略
auto = true
batch = true
# 冲突时保留较新文件
prefer = newer
运行指定配置:
unison myconfig
六、冲突处理
- • 同步时若两端文件均被修改,Unison 会提示:
Conflict: file.txt was modified on both hosts
可选操作:
- `d`:差异对比(需配置 diff 工具)。
- `l`:保留左侧版本。
- `r`:保留右侧版本。
- `m`:手动编辑合并。
七、与 Rsync 对比
| 工具 | 同步方向 | 冲突处理 | 适用场景 |
| — | — | — | — |
| Unison | 双向 | 交互式解决 | 多设备频繁互相同步 |
| Rsync | 单向 | 覆盖目标 | 备份或镜像(如服务器同步) |
八、常见问题
- 1. SSH 连接超时
增加超时时间:
unison -sshargs "-o ServerAliveInterval=30" /local ssh://remote//remote
- 2. 权限问题
同步后恢复权限:
# 在配置文件中添加
perms = 0o755
- 3. 大文件同步中断
使用-retry参数:
unison -retry 5 /path1 /path2
总结
Unison 是 双向同步的最佳工具,尤其适合:
- • 多台电脑同步工作文档(如笔记本 + 台式机)。
- • 开发团队保持代码库一致。
- • 需要冲突解决的复杂同步场景。
通过配置文件和命令行参数,可以灵活适应各种需求!
–END–
觉得不错,可以关注,点赞,转发,如果需要技术援助,可以联系我们,期待您的莅临
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:骏之安科技知识库 Titans《双向文件同步最佳工具-unison》