温馨提示×

linux sftp怎么断点续传

小樊
41
2026-09-23 07:10:17
栏目: 智能运维

在 Linux 下使用 SFTP 实现断点续传,要看你用的是什么客户端工具。下面按常见情况说明:


一、使用 OpenSSH 自带 sftp 命令(最常见)

OpenSSH 的 sftp 本身不支持断点续传(resume)
如果你传输中断,再次 put 会从头开始或覆盖文件。

✅ 解决方式一:使用 reput(部分版本支持)

某些 OpenSSH 版本支持:

sftp user@host
sftp> reput bigfile.iso
  • reput:断点续传上传
  • reget:断点续传下载

⚠️ 注意:

  • 服务端必须支持(OpenSSH ≥ 6.x 一般支持)
  • 文件不能改变
  • 并非所有发行版都启用

二、更推荐:使用 rsync(最稳妥)

✅ 断点续传 + 增量同步

rsync -P -e ssh bigfile.iso user@host:/remote/path/

参数说明:

  • -P:显示进度 + 支持断点续传
  • -e ssh:通过 SSH 传输
  • 中断后再次执行同一命令即可续传

✅ 优点:

  • 真正的断点续传
  • 支持大文件
  • 网络中断无压力

三、使用 lftp(功能最强)

安装

# CentOS / RHEL
yum install lftp

# Ubuntu / Debian
apt install lftp

使用 sftp + 断点续传

lftp sftp://user@host
lftp> put -c bigfile.iso
lftp> get -c bigfile.iso
  • -c:continue(断点续传)
  • 支持自动重连

四、对比总结

工具 是否支持断点续传 推荐度
sftp (put/get) ❌ ⭐
sftp (reput/reget) ✅(有限) ⭐⭐⭐
rsync ✅✅✅ ⭐⭐⭐⭐⭐
lftp ✅✅✅ ⭐⭐⭐⭐

五、建议

  • 大文件 / 不稳定网络 → 用 rsync -P
  • 脚本自动化 → rsync 或 lftp
  • 临时手动传文件 → lftp

如果你愿意,我可以给你写一个自动重连 + 断点续传脚本。

0 踩