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

scp 命令的基本用法

下面的命令的意思是 把 source_file_name复制到destination_host的username account下的destination_folder里。

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

> scp source_file_name username@destination_host:destination_folder

登录后复制

复制

有很多参数可以在scp命令中使用。以下是一些在日常操作中可能会用到的参数。

使用-v参数显示 scp 过程的详细信息

默认的scp命令不带参数,会在后台默默地复制文件。用户只有在过程结束或者出现错误时才能看到结果。

你可以使用 -v 参数来把调试信息输出到屏幕上。这样可以帮助你排查连接、认证和配置方面的问题。

rumenz@local $ scp -v Label.pdf rumenz@192.168.1.110:.

登录后复制

输出

复制文件时 scp 显示进度

Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -t .OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012debug1: Reading configuration data /etc/ssh/ssh_configdebug1: /etc/ssh/ssh_config line 19: Applying options for *debug1: Connecting to 202.x.x.x [202.x.x.x] port 22.debug1: Connection established.debug1: Host '202.x.x.x' is known and matches the RSA host key.debug1: Found key in /home/pungki/.ssh/known_hosts:1debug1: ssh_rsa_verify: signature correctdebug1: Next authentication method: passwordrumenz@202.x.x.x's password:debug1: Authentication succeeded (password).Authenticated to 202.x.x.x ([202.x.x.x]:22).Sending file modes: C0770 3760348 Label.pdfSink: C0770 3760348 Label.pdfLabel.pdf 100% 3672KB 136.0KB/s 00:27Transferred: sent 3766304, received 3000 bytes, in 65.2 secondsBytes per second: sent 57766.4, received 46.0debug1: Exit status 0

登录后复制

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

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

rumenz@local $ scp -p Label.pdf rumenz@192.168.1.110:.

登录后复制

输出

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

> rumenz@202.x.x.x's password:Label.pdf 100% 3672KB 126.6KB/s 00:29

登录后复制

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

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

> rumenz@local $ scp -pv messages.log rumenz@192.168.1.110:.

登录后复制

输出

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

Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -p -t .OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012debug1: Reading configuration data /etc/ssh/ssh_configdebug1: /etc/ssh/ssh_config line 19: Applying options for *debug1: Connecting to 202.x.x.x [202.x.x.x] port 22.debug1: Connection established.debug1: identity file /home/pungki/.ssh/id_rsa type -1debug1: Found key in /home/pungki/.ssh/known_hosts:1debug1: ssh_rsa_verify: signature correctdebug1: Trying private key: /home/pungki/.ssh/id_rsadebug1: Next authentication method: passwordrumenz@202.x.x.x's password:debug1: Authentication succeeded (password).Authenticated to 202.x.x.x ([202.x.x.x]:22).debug1: Sending command: scp -v -p -t .File mtime 1323853868 atime 1380425711Sending file timestamps: T1323853868 0 1380425711 0messages.log 100% 93MB 58.6KB/s 27:05Transferred: sent 97614832, received 25976 bytes, in 1661.3 secondsBytes per second: sent 58758.4, received 15.6debug1: Exit status 0

登录后复制

-C 允许压缩

rumenz@local $ scp -Cpv messages.log rumenz@192.168.1.110:.

登录后复制

输出

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

Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -p -t .OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012debug1: Reading configuration data /etc/ssh/ssh_configdebug1: /etc/ssh/ssh_config line 19: Applying options for *debug1: Connecting to 202.x.x.x [202.x.x.x] port 22.debug1: Connection established.debug1: identity file /home/pungki/.ssh/id_rsa type -1debug1: Host '202.x.x.x' is known and matches the RSA host key.debug1: Found key in /home/pungki/.ssh/known_hosts:1debug1: ssh_rsa_verify: signature correctdebug1: Next authentication method: publickeydebug1: Trying private key: /home/pungki/.ssh/id_rsadebug1: Next authentication method: passwordrumenz@202.x.x.x's password:debug1: Enabling compression at level 6.debug1: Authentication succeeded (password).Authenticated to 202.x.x.x ([202.x.x.x]:22).debug1: channel 0: new [client-session]debug1: Sending command: scp -v -p -t .File mtime 1323853868 atime 1380428748Sending file timestamps: T1323853868 0 1380428748 0Sink: T1323853868 0 1380428748 0Sending file modes: C0600 97517300 messages.logmessages.log 100% 93MB 602.7KB/s 02:38Transferred: sent 8905840, received 15768 bytes, in 162.5 secondsBytes per second: sent 54813.9, received 97.0debug1: Exit status 0debug1: compress outgoing: raw data 97571111, compressed 8806191, factor 0.09debug1: compress incoming: raw data 7885, compressed 3821, factor 0.48

登录后复制

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

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

更改 scp 密码以加密文件

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

rumenz@local $ scp -c 3des Label.pdf rumenz@192.168.1.110:.rumenz@202.x.x.x's password:Label.pdf 100% 3672KB 282.5KB/s 00:13

登录后复制

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

使用 scp 命令限制带宽使用

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

rumenz@local $ scp -l 400 Label.pdf rumenz@192.168.1.110:.rumenz@202.x.x.x's password:Label.pdf 100% 3672KB 50.3KB/s 01:13

登录后复制

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

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

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

rumenz@local $ scp -P 2249 Label.pdf rumenz@192.168.1.110:.rumenz@202.x.x.x's password:Label.pdf 100% 3672KB 262.3KB/s 00:14

登录后复制

递归复制目录中的文件

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

rumenz@local $ scp -r documents rumenz@192.168.1.110:.rumenz@202.x.x.x's password:Label.pdf 100% 3672KB 282.5KB/s 00:13scp.txt 100% 10KB 9.8KB/s 00:00

登录后复制

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

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

rumenz@local $ scp -q Label.pdf rumenz@192.168.1.110:.rumenz@202.x.x.x's password:rumenz@local $

登录后复制

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

通过代理使用 scp 复制文件

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

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

ProxyCommand /usr/bin/corkscrew 10.0.96.6 8080 %h %p ~/.ssh/proxyauth

登录后复制

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

myusername:mypassword

登录后复制

前提是需要安装corkscrew

$ apt-get install corkscrew

登录后复制

Centos系统可以用yum安装corkscrew

# yum install corkscrew

登录后复制

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

选择不同的ssh_config 文件

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

场景示例

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

rumenz@local $ scp -F /home/pungki/proxy_ssh_config Label.pdfrumenz@192.168.1.110:.rumenz@202.x.x.x's password:Label.pdf 100% 3672KB 282.5KB/s 00:13

登录后复制

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

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

以上就是在 Linux 中传输文件文件夹的 10个 scp 命令的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2203911.html

(0)
上一篇 2025年2月26日 00:46:00
下一篇 2025年2月26日 00:46:19

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 怎么用pycharm打开一个py文件

    如何在 PyCharm 中打开 .py 文件:打开 PyCharm;选择「文件」->「打开」,浏览并选择 .py 文件,单击「打开」;.py 文件将在编辑器区域中打开。还可通过拖放或使用快捷键 Ctrl+O (Windows/Linu…

    2025年2月26日
    200
  • pycharm环境配置错误怎么改正

    解决PyCharm环境配置错误的步骤:检查Python解释器路径是否正确配置。安装必要的Python库。检查环境变量中是否包含Python解释器和库路径。重新加载项目以应用更改。更新PyCharm至最新版本。如果以上方法无效,重置PyCha…

    2025年2月26日
    200
  • pycharm怎么添加虚拟环境

    在 PyCharm 中添加虚拟环境可隔离项目与系统 Python 环境:创建虚拟环境:创建新项目,在“项目解释器”中添加虚拟环境并设置名称和位置。激活虚拟环境:选择新创建的虚拟环境并点击“激活”。安装依赖项:在终端中使用 pip 命令安装依…

    2025年2月26日
    200
  • pycharm如何重新配置路径

    PyCharm 中更改路径需要:(1) 打开“Settings”(设置)窗口;(2) 选择“Project Interpreter”(项目解释器);(3) 移除旧路径;(4) 添加新路径;(5) 设置新路径为默认;(6) 重新加载项目。 如…

    2025年2月26日
    200
  • pycharm库文件在哪个文件夹

    PyCharm 库文件存储于以下文件夹:Windows:%APPDATA%JetBrainsPyCharmpluginsmacOS:~/Library/Application Support/JetBrains/PyCharm/plugin…

    2025年2月26日
    200
  • pycharm临时文件在哪

    针对不同操作系统,PyCharm 临时文件的存储位置为:Windows:%TEMP%JetBrainsPyCharmCEmacOS:~/Library/Caches/JetBrains/PyCharmCE/Linux:~/.cache/Je…

    2025年2月26日
    200
  • pycharm安装包在哪里看

    PyCharm安装包可从官方网站下载或通过JetBrains工具箱、SPM等渠道获取。下载的安装包是一个可执行文件,通常位于“下载”文件夹中,安装前需确保满足系统要求。 PyCharm安装包获取方式 官方网站下载 访问PyCharm官方网站…

    2025年2月26日
    200
  • pycharm安装的包在哪个文件夹

    PyCharm已安装的包保存在以下文件夹中:Windows:%APPDATA%JetBrainsPyCharm\packages,和 %LOCALAPPDATA%JetBrainsPyCharm\packagesmacOS:~/Librar…

    2025年2月26日
    200
  • pycharm在哪里查看安装的库

    在 PyCharm 中查看已安装库的方法有两种:通过「设置」对话框,在「已安装包」部分查看。通过「Python 解释器」控制台,使用 import sys 和 print(sys.path) 命令打印路径列表查看。 在 PyCharm 中查…

    2025年2月26日
    200
  • pycharm怎么在终端下载库

    在 PyCharm 中下载库的步骤:打开终端并使用 pip 命令安装库。等待安装完成并使用 pip list 命令确认。在 Python 脚本中导入已安装的库。 如何在 PyCharm 中使用终端下载库 在 PyCharm 中使用终端下载库…

    2025年2月26日
    200

发表回复

登录后才能评论