目录
scp 命令的基本用法" >scp 命令的基本用法
使用-v参数显示 scp 过程的详细信息" >使用-v参数显示 scp 过程的详细信息
输出" >输出
提供原始文件的修改时间、访问时间和模式" >提供原始文件的修改时间、访问时间和模式
使用 -C 参数加快文件传输速度" >使用 -C 参数加快文件传输速度
更改 scp 密码以加密文件" >更改 scp 密码以加密文件
使用 scp 命令限制带宽使用" >使用 scp 命令限制带宽使用
指定要与 scp 一起使用的特定端口" >指定要与 scp 一起使用的特定端口
递归复制目录中的文件" >递归复制目录中的文件
禁用进度表和警告 / 诊断消息" >禁用进度表和警告 / 诊断消息
通过代理使用 scp 复制文件" >通过代理使用 scp 复制文件
选择不同的ssh_config 文件" >选择不同的ssh_config 文件
场景示例" >场景示例
首页 系统教程 操作系统 在 Linux 中传输文件文件夹的 10个 scp 命令

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

Feb 10, 2024 pm 08:30 PM
linux linux教程 linux系统 linux命令 外壳脚本 嵌入式linux linux入门 linux学习

scp 命令的基本用法

下面的命令的意思是 把 source_file_name复制到destination_hostusername 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 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /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:1
debug1: ssh_rsa_verify: signature correct
debug1: Next authentication method: password
rumenz@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.pdf
Sink: C0770 3760348 Label.pdf
Label.pdf 100% 3672KB 136.0KB/s 00:27
Transferred: sent 3766304, received 3000 bytes, in 65.2 seconds
Bytes per second: sent 57766.4, received 46.0
debug1: 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 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /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 -1
debug1: Found key in /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: Trying private key: /home/pungki/.ssh/id_rsa
debug1: Next authentication method: password
rumenz@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 1380425711
Sending file timestamps: T1323853868 0 1380425711 0
messages.log 100% 93MB 58.6KB/s 27:05
Transferred: sent 97614832, received 25976 bytes, in 1661.3 seconds
Bytes per second: sent 58758.4, received 15.6
debug1: 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 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /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 -1
debug1: Host '202.x.x.x' is known and matches the RSA host key.
debug1: Found key in /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: Next authentication method: publickey
debug1: Trying private key: /home/pungki/.ssh/id_rsa
debug1: Next authentication method: password
rumenz@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 1380428748
Sending file timestamps: T1323853868 0 1380428748 0
Sink: T1323853868 0 1380428748 0
Sending file modes: C0600 97517300 messages.log
messages.log 100% 93MB 602.7KB/s 02:38
Transferred: sent 8905840, received 15768 bytes, in 162.5 seconds
Bytes per second: sent 54813.9, received 97.0
debug1: Exit status 0
debug1: compress outgoing: raw data 97571111, compressed 8806191, factor 0.09
debug1: 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:13
scp.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 文件包含你的 usernamepassword 以明文格式,请确保该文件只能自己访问。

选择不同的ssh_config 文件

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

场景示例

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

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

rumenz@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 命令的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Linux各目录及每个目录的详细介绍(转载) Linux各目录及每个目录的详细介绍(转载) May 22, 2025 pm 07:54 PM

【常见目录说明】目录/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。/etc存放系统管理和配置文件/home存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示/usr用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。/usr/x11r6 存放x window的目录/usr/bin 众多

pycharm解释器在哪里 解释器位置查找方法 pycharm解释器在哪里 解释器位置查找方法 May 23, 2025 pm 10:09 PM

在PyCharm中设置解释器的位置可以通过以下步骤实现:1.打开PyCharm,点击“File”菜单,选择“Settings”或“Preferences”。2.找到并点击“Project:[你的项目名]”,然后选择“PythonInterpreter”。3.点击“AddInterpreter”,选择“SystemInterpreter”,浏览到Python安装目录,选中Python可执行文件,点击“OK”。设置解释器时需注意路径正确性、版本兼容性和虚拟环境的使用,以确保项目顺利运行。

用java编程和其他语言的区别 Java的跨平台特性优势分析 用java编程和其他语言的区别 Java的跨平台特性优势分析 May 20, 2025 pm 08:21 PM

Java与其他编程语言的主要区别在于其“一次编写,到处运行”的跨平台特性。1.Java的语法接近C ,但去掉了容易出错的指针操作,适合大型企业应用。2.与Python相比,Java在性能和大规模数据处理上更具优势。Java的跨平台优势源于Java虚拟机(JVM),它能在不同平台上运行相同的字节码,简化开发和部署,但需注意避免使用平台特定API以保持跨平台性。

mysql安装教程 手把手教你mysql安装配置详细步骤 mysql安装教程 手把手教你mysql安装配置详细步骤 May 23, 2025 am 06:09 AM

MySQL的安装和配置可以通过以下步骤完成:1.从官方网站下载适合操作系统的安装包。2.运行安装程序,选择“开发者默认”选项并设置root用户密码。3.安装后配置环境变量,确保MySQL的bin目录在PATH中。4.创建用户时遵循最小权限原则并设置强密码。5.优化性能时调整innodb_buffer_pool_size和max_connections参数。6.定期备份数据库并优化查询语句以提高性能。

参加VSCode线下技术交流活动的经验 参加VSCode线下技术交流活动的经验 May 29, 2025 pm 10:00 PM

参加VSCode线下技术交流活动的经验非常丰富,主要收获包括插件开发的分享、实战演示和与其他开发者的交流。1.插件开发的分享:了解了如何利用VSCode的插件API提升开发效率,如自动格式化和静态分析插件。2.实战演示:学习了如何使用VSCode进行远程开发,认识到其灵活性和扩展性。3.与开发者交流:获取了优化VSCode启动速度的技巧,如减少启动时加载的插件数量和管理插件加载顺序。总之,这次活动让我受益匪浅,强烈推荐对VSCode感兴趣的人参加。

linux如何限制用户资源?ulimit怎么配置? linux如何限制用户资源?ulimit怎么配置? May 29, 2025 pm 11:09 PM

Linux系统通过ulimit命令限制用户资源,防止资源过度占用。1.ulimit是shell内置命令,可限制文件描述符数(-n)、内存大小(-v)、线程数(-u)等,分为软限制(当前生效值)和硬限制(最高上限)。2.临时修改直接使用ulimit命令,如ulimit-n2048,但仅对当前会话有效。3.永久生效需修改/etc/security/limits.conf及PAM配置文件,并添加sessionrequiredpam_limits.so。4.systemd服务需在unit文件中设置Lim

Informix与MySQL在Linux上的比较 Informix与MySQL在Linux上的比较 May 29, 2025 pm 11:21 PM

Informix和MySQL均为广受青睐的关系型数据库管理系统,它们在Linux环境下均表现优异并得到广泛应用。以下是对两者在Linux平台上的对比分析:安装与配置Informix:在Linux上部署Informix需要下载对应的安装文件,随后依据官方文档指引完成安装及配置流程。MySQL:MySQL的安装过程较为简便,可通过系统的包管理工具(例如apt或yum)轻松实现安装,并且网络上有大量的教程和社区支持可供参考。性能表现Informix:Informix以卓越的性能和

Debian下Filebeat与Elasticsearch如何集成 Debian下Filebeat与Elasticsearch如何集成 May 28, 2025 pm 05:09 PM

在Debian操作系统中,实现Filebeat与Elasticsearch的集成能够简化日志数据的采集、传输和存储流程。以下是具体的实施步骤:第一步:部署Elasticsearch首要任务是在Debian系统中完成Elasticsearch的安装工作。你可以从Elastic官网下载对应版本的Elasticsearch软件包,并依据官方提供的指导完成安装过程。下载与安装Elasticsearchwgethttps://artifacts.elastic.co/downloads/elasticse

See all articles