0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Linux中传输文件文件夹的10个scp命令

dyquk4xk2p3d 来源:入门小站 2023-05-05 10:11 次阅读

scp 命令的基本语法

下面的命令将读作copy source_file_name进入destination_folder在destination_host使用username account。

>scpsource_file_nameusername@destination_host:destination_folder

里面有很多参数scp你可以使用的命令。以下是可能在日常使用中使用的参数。

使用-v参数提供 scp 进程的详细信息

基础的scp不带参数的命令将在后台复制文件。除非该过程完成或出现某些错误,否则用户将看不到任何内容。

你可以使用-v参数将调试信息打印到屏幕中。它可以帮助你调试连接、身份验证和配置问题。

rumenz@local$scp-vLabel.pdfrumenz@192.168.1.110:.

输出

复制文件时 scp 显示进度

Executing:program/usr/bin/sshhost202.x.x.x,usermrarianto,commandscp-v-t.
OpenSSH_6.0p1Debian-3,OpenSSL1.0.1c10May2012
debug1:Readingconfigurationdata/etc/ssh/ssh_config
debug1:/etc/ssh/ssh_configline19:Applyingoptionsfor*
debug1:Connectingto202.x.x.x[202.x.x.x]port22.
debug1:Connectionestablished.
debug1:Host'202.x.x.x'isknownandmatchestheRSAhostkey.
debug1:Foundkeyin/home/pungki/.ssh/known_hosts:1
debug1:ssh_rsa_verify:signaturecorrect
debug1:Nextauthenticationmethod:password
rumenz@202.x.x.x'spassword:
debug1:Authenticationsucceeded(password).
Authenticatedto202.x.x.x([202.x.x.x]:22).
Sendingfilemodes:C07703760348Label.pdf
Sink:C07703760348Label.pdf
Label.pdf100%3672KB136.0KB/s00:27
Transferred:sent3766304,received3000bytes,in65.2seconds
Bytespersecond:sent57766.4,received46.0
debug1:Exitstatus0

提供原始文件的修改时间、访问时间和模式

-p参数将帮助你解决这个问题。估计时间和连接速度将出现在屏幕上。

rumenz@local$scp-pLabel.pdfrumenz@192.168.1.110:.

输出

scp 估计复制大文件所需的时间

>rumenz@202.x.x.x'spassword:
Label.pdf100%3672KB126.6KB/s00:29

使用 -C 参数加快文件传输速度

可以加快文件传输速度的参数之一是-C范围。这-C参数将随时随地压缩你的文件,独特的是压缩只发生在网络中。当文件到达目标服务器时,它将恢复到压缩前的原始大小。

>rumenz@local$scp-pvmessages.logrumenz@192.168.1.110:.

输出

scp 在不压缩的情况下传输文件

Executing:program/usr/bin/sshhost202.x.x.x,usermrarianto,commandscp-v-p-t.
OpenSSH_6.0p1Debian-3,OpenSSL1.0.1c10May2012
debug1:Readingconfigurationdata/etc/ssh/ssh_config
debug1:/etc/ssh/ssh_configline19:Applyingoptionsfor*
debug1:Connectingto202.x.x.x[202.x.x.x]port22.
debug1:Connectionestablished.
debug1:identityfile/home/pungki/.ssh/id_rsatype-1
debug1:Foundkeyin/home/pungki/.ssh/known_hosts:1
debug1:ssh_rsa_verify:signaturecorrect
debug1:Tryingprivatekey:/home/pungki/.ssh/id_rsa
debug1:Nextauthenticationmethod:password
rumenz@202.x.x.x'spassword:
debug1:Authenticationsucceeded(password).
Authenticatedto202.x.x.x([202.x.x.x]:22).
debug1:Sendingcommand:scp-v-p-t.
Filemtime1323853868atime1380425711
Sendingfiletimestamps:T1323853868013804257110
messages.log100%93MB58.6KB/s27:05
Transferred:sent97614832,received25976bytes,in1661.3seconds
Bytespersecond:sent58758.4,received15.6
debug1:Exitstatus0

-C允许压缩

rumenz@local$scp-Cpvmessages.logrumenz@192.168.1.110:.

输出

scp 使用压缩更快地传输文件

Executing:program/usr/bin/sshhost202.x.x.x,usermrarianto,commandscp-v-p-t.
OpenSSH_6.0p1Debian-3,OpenSSL1.0.1c10May2012
debug1:Readingconfigurationdata/etc/ssh/ssh_config
debug1:/etc/ssh/ssh_configline19:Applyingoptionsfor*
debug1:Connectingto202.x.x.x[202.x.x.x]port22.
debug1:Connectionestablished.
debug1:identityfile/home/pungki/.ssh/id_rsatype-1
debug1:Host'202.x.x.x'isknownandmatchestheRSAhostkey.
debug1:Foundkeyin/home/pungki/.ssh/known_hosts:1
debug1:ssh_rsa_verify:signaturecorrect
debug1:Nextauthenticationmethod:publickey
debug1:Tryingprivatekey:/home/pungki/.ssh/id_rsa
debug1:Nextauthenticationmethod:password
rumenz@202.x.x.x'spassword:
debug1:Enablingcompressionatlevel6.
debug1:Authenticationsucceeded(password).
Authenticatedto202.x.x.x([202.x.x.x]:22).
debug1:channel0:new[client-session]
debug1:Sendingcommand:scp-v-p-t.
Filemtime1323853868atime1380428748
Sendingfiletimestamps:T1323853868013804287480
Sink:T1323853868013804287480
Sendingfilemodes:C060097517300messages.log
messages.log100%93MB602.7KB/s02:38
Transferred:sent8905840,received15768bytes,in162.5seconds
Bytespersecond:sent54813.9,received97.0
debug1:Exitstatus0
debug1:compressoutgoing:rawdata97571111,compressed8806191,factor0.09
debug1:compressincoming:rawdata7885,compressed3821,factor0.48

如果你要通过网络复制大量文件,-C参数将帮助你减少所需的总时间。

压缩方法不适用于所有文件。当源文件已经被压缩时,就没有什么效果了。文件如.zip,.rar,pictures, 和.iso

更改 scp 密码以加密文件

默认情况下scp使用AES-128来加密文件。如果你想更改为其他密码对其进行加密,你可以使用-c范围。看看这个命令。

rumenz@local$scp-c3desLabel.pdfrumenz@192.168.1.110:.

rumenz@202.x.x.x'spassword:
Label.pdf100%3672KB282.5KB/s00:13

上面的命令告诉scp使用3des algorithm来加密文件。请注意此参数使用-c不是-C。

使用 scp 命令限制带宽使用

另一个可能有用的参数是-l范围。这-l参数将限制使用的带宽制 。如果你执行自动化脚本来复制大量文件,这将很有用

rumenz@local$scp-l400Label.pdfrumenz@192.168.1.110:.

rumenz@202.x.x.x'spassword:
Label.pdf100%3672KB50.3KB/s01:13

scp 默认带宽的单位是Kilobyte/sec(KB/s)。所以如果你想限制你的带宽scp最多只有50 KB/s,你需要将其设置为50 x 8=400.

指定要与 scp 一起使用的特定端口

scp正在使用端口22作为默认端口。但出于安全原因,你可以将端口更改为另一个端口. 例如,我们使用端口2249.

rumenz@local$scp-P2249Label.pdfrumenz@192.168.1.110:.

rumenz@202.x.x.x'spassword:
Label.pdf100%3672KB262.3KB/s00:14

递归复制目录中的文件

有时我们需要复制目录和其中的所有文件,目录。

rumenz@local$scp-rdocumentsrumenz@192.168.1.110:.

rumenz@202.x.x.x'spassword:
Label.pdf100%3672KB282.5KB/s00:13
scp.txt100%10KB9.8KB/s00:00

复> 制过程完成后,你将在目标服务器上找到一个名为documents及其所有文件。文件夹documents是自动创建的。

禁用进度表和警告 / 诊断消息

rumenz@local$scp-qLabel.pdfrumenz@192.168.1.110:.

rumenz@202.x.x.x'spassword:
rumenz@local$

可以看到,输入密码后,没有关于 scp 进程的信息。该过程完成后,你将再次看到提示。

通过代理使用 scp 复制文件

代理服务器通常用于办公环境。scp 本身没有配置代理。当你的环境使用代理时,你必须告诉scp 与代理进行通信

例如代理地址是10.0.96.6代理端口是8080.代理还实现了用户身份验证。首先,你需要创建~/.ssh/config文件

ProxyCommand/usr/bin/corkscrew10.0.96.68080%h%p~/.ssh/proxyauth

然后你需要创建文件~/.ssh/proxyauth里面输入。

myusername:mypassword

前提是需要安装corkscrew

$apt-getinstallcorkscrew

Centos系统可以用yum安装corkscrew

#yuminstallcorkscrew

由于~/.ssh/proxyauth文件包含你的username和password以明文格式,请确保该文件只能自己访问。

选择不同的ssh_config 文件

对于经常在公司网络和公共网络之间切换的移动用户来说,总是在scp中更改设置会很痛苦。

场景示例

代理在公司网络中使用,但不在公共网络中使用,并且你定期切换网络。

rumenz@local$scp-F/home/pungki/proxy_ssh_configLabel.pdf

rumenz@192.168.1.110:.
rumenz@202.x.x.x'spassword:
Label.pdf100%3672KB282.5KB/s00:13

默认情况下ssh_config每个用户的文件将被放置在~/.ssh/config。创建一个特定的ssh_config具有代理兼容性的文件将更容易在网络之间切换。

当你在公司网络,你可以使用-F范围。当你在公共网络上时,你可以不用-F参数。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11312

    浏览量

    209702
  • 参数
    +关注

    关注

    11

    文章

    1838

    浏览量

    32261
  • 文件
    +关注

    关注

    1

    文章

    567

    浏览量

    24762
  • 命令
    +关注

    关注

    5

    文章

    685

    浏览量

    22043
  • SCP
    SCP
    +关注

    关注

    0

    文章

    29

    浏览量

    9264

原文标题:在 Linux 中传输文件文件夹的 10个 scp 命令

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux文件是一什么文件的路径

    从这一章开始,阿铭介绍的命令会越来越多,希望你能够反复练习每一命令的每一选项。Windows下,新建、复制、删除
    的头像 发表于 10-17 09:07 1262次阅读

    Linux命令详解之scp命令

    #lsdestDirlocalDirtestDir将远程目录拷贝到本地,并制定本地文件夹名称为:localDir以上就是实际应用中比较常用的 scp命令 用法,另外需要注意的是,远
    发表于 08-27 13:41

    如何删除msn共享文件夹

    如何删除msn共享文件夹  Q:我的电脑中有安装了MSN 8.0才有的无名文件夹。我想问问董师傅,这个文件夹到底有什么?如何删除?
    发表于 02-24 13:56 800次阅读

    ubuntu隐藏/显示文件文件夹

    ubuntu 16.04 LTS - 隐藏/显示文件文件夹 1. GUI hot key Ctrl H: 隐藏/显示文件文件夹 2. Show hidden and backup
    发表于 11-25 12:52 5088次阅读

    dos命令怎么用_DOS下创建文件文件夹

    DOS命令,计算机术语,是指DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令
    发表于 01-17 16:15 5.6w次阅读
    dos<b class='flag-5'>命令</b>怎么用_DOS下创建<b class='flag-5'>文件</b>、<b class='flag-5'>文件夹</b>

    基于Linux文件夹的结构说明及用途的简单解析

    linux下各文件夹的结构说明及用途介绍。
    的头像 发表于 01-26 14:47 2862次阅读

    Linux如何判断文件夹是否存在并新建文件夹

    本文档的主要内容详细介绍的是Linux如何判断文件夹是否存在并新建文件夹vi文件免费下载。
    发表于 01-17 08:00 8次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b>如何判断<b class='flag-5'>文件夹</b>是否存在并新建<b class='flag-5'>文件夹</b>

    如何在文件管理器隐藏文件文件夹

    如果一系统被多个用户使用,你或许出于个人原因想在文件管理器隐藏一些文件文件夹不让其他人看到(绝大多数用户不会对
    发表于 05-13 09:34 1374次阅读
    如何在<b class='flag-5'>文件</b>管理器<b class='flag-5'>中</b>隐藏<b class='flag-5'>文件</b>和<b class='flag-5'>文件夹</b>

    ASP NET的APP Code和BIN文件夹的详细介绍

    如果您的 Web 应用程序包括要在多个页之间共享的代码,您可以将代码保存在 Web 应用程序根目录下的两特殊文件夹(Bin 文件夹和 App_Code 文件夹
    发表于 10-17 15:39 14次下载

    linuxscp命令怎么用_linux的grep命令用法

    linuxscp命令用于Linux之间复制文件
    发表于 09-04 15:36 4436次阅读
    <b class='flag-5'>linux</b>的<b class='flag-5'>scp</b><b class='flag-5'>命令</b>怎么用_<b class='flag-5'>linux</b>的grep<b class='flag-5'>命令</b>用法

    Unity中所有特殊的文件夹

    隐藏文件夹:以.开头的文件夹会被Unity忽略。在这种文件夹的资源不会被导入,脚本不会被编译。也不会出现在Project视图中。
    的头像 发表于 02-12 16:10 2602次阅读

    笔记:Unity中所有特殊的文件夹

    隐藏文件夹:以.开头的文件夹会被Unity忽略。在这种文件夹的资源不会被导入,脚本不会被编译。也不会出现在Project视图中。
    发表于 01-21 06:24 4次下载
    笔记:Unity中所有特殊的<b class='flag-5'>文件夹</b>

    使用SCP和RsyncLinux传输文件

    Linux ,有时需要将文件从一台计算机传输到另一台计算机。为了完成这个任务,有两主要的
    的头像 发表于 05-12 14:32 964次阅读

    如何在Linux文件文件夹搜索文本?

    如果您是开发人员、Web 程序员或处理许多文件的人,并且需要查找单个文本,今天可要好好看这篇文章了。 假设您有一包含 30 文件夹和 20,000
    的头像 发表于 05-12 16:19 1681次阅读

    linux 显示文件夹所有文件的属性

    Linux,您可以使用 ls 命令来显示文件夹所有文件的属性。使用 ls -a
    的头像 发表于 11-13 16:52 1024次阅读