当前位置: 首页 > news >正文

Linux 远程文件复制传输-----scp/rsync/sftp

scp(Secure Copy Protocol)是基于 SSH 的安全文件传输工具,可用于在本地和远程计算机之间复制文件或目录。


1. scp(基于 SSH 复制文件)

a. 复制文件到远程

  • 从本地复制到远程

    scp localfile.txt user@remote_host:/remote/path/
    

    📌 解释:将本地文件 localfile.txt 复制到远程主机 remote_host 的 /remote/path/ 目录下。

  • 从远程复制到本地

    scp user@remote_host:/remote/path/file.txt /local/path/
    

    📌 解释:将远程主机上的 file.txt 下载到本地 /local/path/ 目录下。

  • 复制整个目录(-r 递归)

    scp -r localdir user@remote_host:/remote/path/
    

    📌 解释:将本地目录 localdir 及其内容递归复制到远程 remote_host 的 /remote/path/ 目录。

b. 下载远程文件到本地

scp user@remote_host:/remote/path/file.zip /local/path/

📌 示例:从远程服务器 192.168.1.100 下载 file.zip 到本地 /home/user/ 目录:

scp user@192.168.1.100:/home/user/file.zip /home/user/

c. 下载远程目录

scp -r user@remote_host:/remote/path/ /local/path/

📌 示例:下载整个 backup 目录:

scp -r user@192.168.1.100:/home/user/backup/ /home/user/

d. 指定 SSH 端口

如果 SSH 端口不是默认的 22,可以使用 -P 选项:

scp -P 2222 user@remote_host:/remote/path/file.zip /local/path/

2. rsync(更高效的文件同步,支持断点续传)

a. 下载远程文件到本地

rsync -avP user@remote_host:/remote/path/file.zip /local/path/

📌 示例:从 192.168.1.100 下载 file.zip

rsync -avP user@192.168.1.100:/home/user/file.zip /home/user/

b. 下载远程目录

rsync -avP user@remote_host:/remote/path/ /local/path/

📌 示例:下载整个 backup 目录:

rsync -avP user@192.168.1.100:/home/user/backup/ /home/user/

c. 指定 SSH 端口

rsync -avP -e "ssh -p 2222" user@remote_host:/remote/path/ /local/path/

3. 使用 sftp(交互式下载)

如果你需要交互式浏览远程文件再下载,可以使用 sftp

sftp user@remote_host

然后在 sftp> 提示符下执行:

get /remote/path/file.zip

下载整个目录:

get -r /remote/path/

4. 使用密钥文件进行认证

scp -i ~/.ssh/id_rsa localfile.txt user@remote_host:/remote/path/

📌 解释:使用 ~/.ssh/id_rsa 作为身份认证密钥。


5. 多文件复制

scp file1.txt file2.txt user@remote_host:/remote/path/

📌 解释:同时复制多个文件到远程服务器。


总结

方式适用场景命令示例
scp直接复制文件scp user@remote:/file.zip /local/
scp -r复制整个目录scp -r user@remote:/dir/ /local/
rsync高效同步(支持断点续传)rsync -avP user@remote:/file.zip /local/
rsync -r同步整个目录rsync -avP user@remote:/dir/ /local/
sftp交互式文件下载sftp user@remote

你是要下载单个文件,还是整个目录?是否需要断点续传?

注意事项

  1. 远程路径必须有写入权限,否则会报错 Permission denied
  2. scp 需要 SSH 访问权限,请确保可以 ssh user@remote_host 登录远程服务器。
  3. 如果连接失败,请检查 SSH 端口和防火墙设置。
  4. 如果传输大文件或不稳定的网络环境,建议使用 rsync 替代 scp,支持断点续传:
    rsync -avP localfile.txt user@remote_host:/remote/path/
    

相关文章:

  • Git | 相关命令
  • QT 异步编程之多线程
  • CSDN 大模型 笔记
  • 虚拟化重大灾难:硬盘故障导致的 VMware vSphere 故障排查与解决全过程
  • PHP的JIT编译器
  • Druid GetConnectionTimeoutException解决方案之一
  • 数据结构-栈和队列的应用
  • sql注入之盲注(bool盲注,时间盲注)
  • list_for_each_entry_safe 简介
  • AUTOGPT:基于GPT模型开发的实验性开源应用程序; 目标设定与分解 ;;自主思考与决策 ;;信息交互与执行
  • Windows中使用Docker安装Anythingllm,基于deepseek构建自己的本地知识库问答大模型,可局域网内多用户访问、离线运行
  • 云计算实训室解决方案(2025年最新版)
  • C++ 设计模式-建造者模式
  • 深度学习框架探秘|TensorFlow vs PyTorch:AI 框架的巅峰对决
  • MySQL调用存储过程和存储函数
  • win10中mstsc远程Centos-Stream 9图形化界面
  • 简单几个步骤完成 Oracle 到金仓数据库(KingbaseES)的迁移目标
  • 朝天椒USB服务器:解决加密狗远程连接
  • 软件工程-软件设计
  • Docker 部署 MySQL-5.7 单机版
  • 内丘网站建设案例/网站排名优化方案
  • 班玛网站建设/外包平台
  • 微信可以做网站吗/百度seo搜搜
  • 网站建设评价标准/交换友情链接的网站标准是什么
  • 网站内部链接怎麽做/东莞网站建设排名
  • 幼儿园建设报备网站/百度推广竞价开户