在 Linux 环境中,scp 和 rsync 是高效的远程文件传输与同步工具,适用于不同场景。以下为实践建议:
-
scp (Secure Copy)
- 用途:基于 SSH 协议的单次文件传输,适合小规模或临时操作。
- 命令格式:
scp [参数] 源路径 目标路径
示例:
scp -P 2222 -r /local_dir user@remote_host:/remote_dir
- 关键参数:
-P
指定端口,-r
递归目录,-C
启用压缩。
-
rsync (Remote Sync)
- 用途:增量同步与大规模数据传输,支持断点续传与差异更新。
- 命令格式:
rsync [参数] 源路径 目标路径
示例:
rsync -avz --delete -e 'ssh -p 2222' /local_dir/ user@remote_host:/remote_dir/
- 关键参数:
-a
归档模式(保留属性),-v
显示详情,-z
压缩传输,--delete
同步删除目标端冗余文件,--exclude
排除特定文件。
最佳实践:
- 优先使用 rsync 进行定期同步或大量数据迁移,降低带宽消耗。
- 结合 SSH 密钥认证实现免密操作,提升自动化安全性。
- 路径结尾加
/
表示目录内容(如/local_dir/
),不加则表示目录本身。 - 通过
cron
定时任务实现周期性同步,例如每日备份。