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

Linux,如何将文件从一台服务器传到另一台服务器上

摘要

将文件从一台服务器上传到另一台服务器上用到了scp命令。

scp(Secure Copy Protocol)命令用于在本地和远程主机之间或两个远程主机之间安全地复制文件或目录。它基于SSH协议,因此文件传输过程中会进行加密。以下是scp命令的详细解释及具体示例:

一、基本语法

scp [options] source destination
  • source:源文件或目录的路径,可以是本地路径或者远程路径。
  • destination:目标文件或目录的路径,也可以是本地路径或远程路径。

二、常用选项

  • -r:递归复制整个目录及其内容。
  • -P port:指定远程主机的SSH端口(注意是大写的-P),默认端口是22。
  • -i identity_file:指定私钥文件用于身份验证。
  • -C:启用压缩,适用于大文件传输,可以减少带宽占用。
  • -p:保留文件的修改时间、访问时间和权限。
  • -l bandwidth_limit:限制传输的带宽,单位为Kbit/s。
  • -v:启用详细输出,显示传输进度和调试信息。

三、具体示例

  1. 从本地复制文件到远程主机
scp /path/to/local/file username@remote_host:/path/to/remote/destination

示例:将本地的abc.sh文件复制到远程主机192.168.100.20/root目录:

scp /etc/abc.sh root@192.168.100.20:/root/
  1. 从远程主机复制文件到本地
scp username@remote_host:/path/to/remote/file /path/to/local/destination

示例:从远程主机192.168.100.20上的/root/abc.sh文件复制到本地的/home/user/目录:

scp root@192.168.100.20:/root/abc.sh /home/user/
  1. 复制本地目录及其内容到远程主机

使用-r选项递归复制目录:

scp -r /path/to/local/directory username@remote_host:/path/to/remote/destination

示例:将本地的/home/user/mydir目录复制到远程主机/root/目录:

scp -r /home/user/mydir root@192.168.100.20:/root/
  1. 复制远程主机上的目录到本地

同样使用-r选项:

scp -r username@remote_host:/path/to/remote/directory /path/to/local/destination

示例:将远程主机/root/mydir目录复制到本地/home/user/目录:

scp -r root@192.168.100.20:/root/mydir /home/user/
  1. 指定非默认SSH端口

如果远程主机使用非默认的SSH端口(例如2222),可以使用-P选项指定端口号:

scp -P port /path/to/local/file username@remote_host:/path/to/remote/destination

示例:

scp -P 2222 /etc/abc.sh root@192.168.100.20:/root/
  1. 限制传输带宽

使用-l选项限制传输的带宽(以Kbit/s为单位):

scp -l bandwidth_limit /path/to/local/file username@remote_host:/path/to/remote/destination

示例:限制带宽为500Kbit/s:

scp -l 500 /etc/abc.sh root@192.168.100.20:/root/
  1. 启用详细输出

使用-v选项启用详细输出,显示传输进度和调试信息:

scp -v /path/to/local/file username@remote_host:/path/to/remote/destination

示例:

scp -v /etc/abc.sh root@192.168.100.20:/root/
  1. 使用私钥进行身份验证

如果远程主机要求使用SSH密钥进行身份验证,可以通过-i选项指定私钥文件:

scp -i /path/to/private_key /path/to/local/file username@remote_host:/path/to/remote/destination

示例:使用/home/user/.ssh/id_rsa密钥文件:

scp -i /home/user/.ssh/id_rsa /etc/abc.sh root@192.168.100.20:/root/
  1. 保留文件权限和时间

使用-p选项保留文件的修改时间、访问时间和权限:

scp -p /path/to/local/file username@remote_host:/path/to/remote/destination

示例:

scp -p /home/user/music.mp3 user@192.168.1.100:/home/user/music/
  1. 使用压缩

使用-C选项在复制过程中压缩文件或目录,可以减少网络传输时间:

scp -C /path/to/local/file username@remote_host:/path/to/remote/destination

示例:

scp -C /home/user/largefile.zip user@192.168.1.100:/home/user/backup/

四、注意事项

  • 确保远程主机已经启用了SSH服务。
  • 如果目标目录在远程主机上不存在,scp命令会自动创建目录。
  • 默认情况下,scp会要求你输入远程主机的密码(除非使用密钥认证)。
  • scp命令使用的是SSH协议,因此其安全性依赖于SSH的配置。

http://www.kler.cn/a/415480.html

相关文章:

  • 电机驱动MCU介绍
  • 非关系型数据库有哪些特点?
  • MCU跨领域融合的风向标是什么?
  • Spring Web MVC(详解中)
  • JDBC 设置 PostgreSQL 查询中 any(?) 的参数
  • (免费送源码)计算机毕业设计原创定制:Java+B/S+SSM+Web前端开发技术+IDEA+MySQL+Navicat 有风小院
  • 基于STM32的智能农业灌溉系统设计与实现
  • Java 基础之 List 深度探秘
  • ChatGPT 能否克服金融领域中的行为偏见?分类与重新思考:黄金投资中的多步零样本推理
  • k8s容器存储接口 CSI 相关知识
  • ElasticSearch学习笔记把:Springboot整合ES(二)
  • 内核模块里获取当前进程和父进程的cmdline的方法及注意事项,涉及父子进程管理,和rcu的初步介绍
  • 设计模式学习之——策略模式
  • 使用命令行来刷写ELRS接收器的固件
  • 小程序-基于java+SpringBoot+Vue的乡村研学旅行平台设计与实现
  • 重复请求取消(不发请求)
  • NLP信息抽取大总结:三大任务(带Prompt模板)
  • Java面向对象高级学习二
  • Spring MVC 深度剖析:优势与劣势全面解读
  • k8s 1.28 二进制安装与部署
  • CPU、MPU、MCU和SOC学习笔记
  • 今日codeforces刷题(1)
  • 【Canvas与雷达】简约绿色扫描雷达图标
  • 【Linux】Linux常用命令
  • .net6.0 mvc 传递 model 实体参数(无法对 null 引用执行运行时绑定)
  • Python 3 教程第36篇(XML 解析)