如何实现本地文件夹与指定SMB远程服务器文件夹自动同步?
实现本地与远程SMB文件夹自动同步的可行方案
当然有简单易上手的方案!既然你已经能通过Finder挂载SMB服务器,那下面这两种方法完全适合你,一步步跟着做就行,不用怕复杂:
方法一:用Mac自带工具(免费,无需额外软件)
这个方法用系统内置的rsync命令做同步,再通过LaunchAgent实现定时自动执行,完全不用花钱。
步骤1:确认远程文件夹挂载路径
当你通过Finder连接到smb://research02a.mssm.com/shr1/genetics/psp后,这个文件夹会挂载在Mac的/Volumes/目录下。你可以在Finder侧边栏看到它的名称(比如可能叫psp或者genetics),记下来这个名称,后面要用到。
步骤2:手动测试同步命令
打开「终端」(Launchpad → 其他 → 终端),输入下面的命令(替换成你的实际路径):
rsync -av --delete ~/Documents/你的本地文件夹/ /Volumes/远程文件夹名称/
参数解释:
-a:归档模式,保留文件的权限、时间戳等信息,保证同步的完整性-v:显示同步的详细过程,方便排查问题--delete:删除远程文件夹里本地已经删掉的文件(如果不需要同步删除,直接去掉这个参数就行)
执行命令后,输入你的Mac用户密码(终端输入密码时不会显示,正常输入回车就行),看看文件是不是正常同步了。
步骤3:设置定时自动同步
我们用LaunchAgent让系统定时执行上面的命令:
- 打开「文本编辑」,新建一个纯文本文件,粘贴下面的内容(替换所有带「你的」的部分):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.你的用户名.pspsync</string> <!-- 起个唯一的名字,比如你的用户名加sync --> <key>ProgramArguments</key> <array> <string>/usr/bin/rsync</string> <string>-av</string> <string>--delete</string> <string>/Users/你的用户名/Documents/你的本地文件夹/</string> <!-- 本地文件夹绝对路径 --> <string>/Volumes/远程文件夹名称/</string> <!-- 远程挂载的路径 --> </array> <key>StartInterval</key> <integer>3600</integer> <!-- 同步间隔,单位秒,3600=1小时,可自行修改 --> <key>RunAtLoad</key> <true/> <!-- 开机时自动执行一次同步 --> <key>StandardErrorPath</key> <string>/Users/你的用户名/Library/Logs/pspsync_error.log</string> <!-- 错误日志保存路径 --> <key>StandardOutPath</key> <string>/Users/你的用户名/Library/Logs/pspsync_out.log</string> <!-- 同步日志保存路径 --> </dict> </plist> - 保存文件:选择「格式」→「制作纯文本」,然后保存为
com.你的用户名.pspsync.plist,保存到~/Library/LaunchAgents/文件夹(如果看不到Library,按Cmd+Shift+G,输入~/Library打开)。 - 加载配置:回到终端,输入下面的命令并回车:
launchctl load ~/Library/LaunchAgents/com.你的用户名.pspsync.plist - (可选)设置开机自动挂载远程SMB:打开「系统偏好设置」→「用户与群组」→「登录项」,点击加号,把Finder里的远程文件夹拖进去,这样开机就会自动挂载,避免同步失败。
方法二:用图形化第三方工具(更直观,适合怕命令行的用户)
如果你觉得命令行太麻烦,用第三方同步工具会更简单,比如Chronosync或者GoodSync,都是Mac上很成熟的同步软件:
- 下载安装Chronosync(可以在Mac App Store或者官网获取);
- 打开软件,点击「新建同步任务」;
- 左边选择你的本地文件夹,右边选择已经挂载的远程SMB文件夹;
- 设置同步方向:可以选「双向同步」(本地和远程互相更新)或者「单向同步」(比如只从本地同步到远程);
- 设置定时规则:比如每小时同步一次,或者当文件变化时自动同步;
- 保存任务,以后软件就会自动帮你完成同步了。
注意事项
- 不管用哪种方法,先手动测试几次,确保同步正常,避免误删重要文件;
- 如果用
rsync的--delete参数,一定要确认你需要同步删除操作,不然可能会误删远程的文件; - 同步时确保你的Mac处于联网状态,且远程服务器正常运行。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

