FTP 工具 vs. 命令行 SCP/RSYNC

发布于:2025-05-16 ⋅ 阅读:(23) ⋅ 点赞:(0)

🔹 FTP 工具 vs. 命令行 SCP/RSYNC 对比

场景 FTP/SFTP 工具(如 Cyberduck、FileZilla) 命令行(scp/rsync
适用人群 新手、喜欢图形化操作 习惯命令行、需要自动化脚本
传输少量文件 ✅ 拖拽即可上传下载 ⚠️ 需手动输入命令
传输大量文件 ✅ 更直观,可队列管理 rsync 更高效(增量同步、断点续传)
服务器文件管理 ✅ 直接可视化浏览/编辑/删除 ⚠️ 需记忆 ls/cd/rm 等命令
安全性 ⚠️ FTP 不安全(明文传输),务必用 SFTP ✅ SCP/SFTP 基于 SSH,默认加密
脚本化/自动化 ❌ 难集成到脚本 ✅ 可写脚本批量操作(如定时备份)

🔹 推荐工具(Mac 可用)

1. SFTP 工具(安全推荐!)

  • Cyberduck(免费,界面简洁,支持 SFTP/FTP/云存储)

是的!rsync 是比普通 FTP/SCP 更高效的文件同步工具,特别适合大文件、频繁更新或网络不稳定的场景。以下是它的核心优势和使用方法:


🔹 为什么 rsync 更高效?

特性 说明
增量同步 只传输变化的部分(对比文件差异),大幅节省时间和带宽。
断点续传 如果传输中断,下次可从中断处继续,无需重新开始。
保持权限/时间戳 保留文件属性(如权限、修改时间),适合备份。
压缩传输 通过 -z 选项压缩数据,减少传输量(尤其对文本文件有效)。
支持排除文件 可忽略指定文件(如临时文件、日志)。

🔹 基础命令语法

1. 本地 → 服务器

rsync -avz -e "ssh -p 端口号" 本地目录/ 用户名@服务器IP:目标路径/

2. 服务器 → 本地

rsync -avz -e "ssh -p 端口号" 用户名@服务器IP:服务器目录/ 本地路径/

3. 常用选项

选项 作用
-a 归档模式(保留权限、时间戳等)
-v 显示详细进度
-z 压缩传输
--delete 同步时删除目标端多余文件(谨慎使用!
--exclude="*.log" 排除所有 .log 文件

🔹 典型使用场景

✅ 场景 1:同步本地项目到服务器(排除 node_modules

rsync -avz -e "ssh -p 2222" --exclude="node_modules/" ~/projects/my_app/ user@server:/var/www/

✅ 场景 2:从服务器拉取日志(仅同步新增内容)

rsync -avz -e "ssh -p 2222" user@server:/var/log/nginx/ ~/Desktop/nginx_logs/

✅ 场景 3:双向同步(确保两端完全一致)

rsync -avz --delete -e "ssh -p 2222" ~/backup/ user@server:/backup/

⚠️ --delete 会删除目标端多余文件,首次使用建议先加 --dry-run 模拟运行。


🔹 高级技巧

1. 限速传输(避免占用全部带宽)

rsync -avz --bwlimit=1000 -e "ssh -p 2222" large_file user@server:/data/

--bwlimit=1000 表示限速 1000 KB/s)

2. 断点续传

如果传输中断,直接重新运行原命令即可,rsync 会自动跳过已传输的部分。

3. 后台运行(长时间任务)

nohup rsync -avz -e "ssh -p 2222" big_folder user@server:/backup/ > rsync.log 2>&1 &
  • 日志会保存到 rsync.log,即使关闭终端也不会中断。

🔹 与 scp/sftp 对比

工具 适用场景 优势
rsync 大文件、定期备份、增量同步 高效、节省带宽、断点续传
scp 快速传单个小文件 命令简单
SFTP 图形工具 可视化操作、临时文件管理 拖拽上传、直观浏览

📌 总结

  • 日常小文件传输 → 用 SFTP 工具(如 Cyberduck)更方便。
  • 大文件/定期同步rsync 是首选(尤其适合备份、部署代码)。
  • 极端网络环境rsync + --bwlimit + nohup 组合抗干扰。

掌握 rsync 后,你会发现它比传统 FTP/SCP 强大得多!遇到具体场景可以再问我优化方案 😊


网站公告

今日签到

点亮在社区的每一天
去签到