
可以直接通过 Finder 连接:在 Finder 菜单栏选择 “前往” → “连接服务器…”,在弹窗中输入 ftp://your-server-address 或 sftp://your-server-address(若服务器支持 SFTP 优先使用),点击“连接”,输入用户名和密码即可挂载为网络驱动器。
如果需要图形化管理文件,可使用第三方客户端如 FileZilla、Cyberduck 或 Transmit,这些工具支持保存站点、断点续传、拖拽操作,并且可以切换被动/主动模式以解决网络或防火墙问题。
使用 Finder 挂载的网络驱动器可以直接拖拽文件进行上传或下载,但这种方式不适合大量或需要比较时间戳和差异的同步场景。若用图形客户端,选择本地文件夹与远程目录,使用“上传/下载”或“同步”功能可以实现批量操作。
命令行方式更灵活:若是 SFTP,可以使用 scp 或 sftp 命令;例如 scp -r /local/path user@host:/remote/path。注意标准 FTP 不支持 scp/rsync 的高效差异同步,若必须使用 FTP,可考虑使用 lftp 的 mirror 命令来实现增量同步。
如果目标服务器支持 SSH/SFTP,推荐使用 rsync:rsync -avz --delete /local/dir/ user@host:/remote/dir/,该命令会传输差异并删除远程多余文件,带来高效稳定的同步。
若只有传统 FTP 访问,可以使用 lftp(需通过 Homebrew 安装:brew install lftp),示例命令:lftp -u user,pass ftp://host -e "mirror --reverse --delete /local/dir /remote/dir; bye"。mirror 的 --reverse 表示从本地同步到远程,--delete 会使目标与源保持镜像一致。
常见方法有三种:使用 Automator 或 AppleScript 封装同步脚本并通过日历触发;使用 cron(传统但在 macOS 近年并非主推);推荐使用 launchd(创建 plist)来实现开机或定时任务,稳定且与系统集成良好。
示例思路:编写一个 shell 脚本(包含 rsync 或 lftp 命令),将其放在 /usr/local/bin,然后创建一个 launchd plist 文件(放在 ~/Library/LaunchAgents/),设置 StartInterval 或 CalendarInterval 来周期执行,并用 launchctl load 启用。记得脚本内使用绝对路径并做好日志记录以便排错。
优先使用 SFTP(SSH)而不是明文的 FTP,以保障传输加密与认证安全。如果必须使用 FTP,至少启用 FTPS(FTP over TLS)。此外,尽量使用密钥认证替代密码,并限制服务器端的权限与目录访问范围。
故障排查要点包括:检查防火墙和被动/主动模式端口设置、确认用户名密码或密钥是否正确、查看客户端与服务器日志以定位失败步骤、使用 ping/traceroute 检测网络连通性,以及确认远程目录权限和磁盘配额。对于自动任务,检查 launchd 或 cron 的日志输出并确保脚本的环境变量(PATH 等)正确配置。