12个scp传输文件的命令栗子
12个scp传输文件的命令栗子
一直在用scp进行简单的远程复制文件的功能,今天无意间看到一篇介绍scp的文章,便想着学习学习并将其翻译了过来。原文戳这里。翻译不对的地方,敬请指正。
另外我最近搭建了个新的博客。戳这里进去:voidy's blog。欢迎在新博客留下足迹~以后也会不定时在此更新。好了,开始讲scp传输。
安全复制
Scp(Secure Copy)是一个在各个主机之间进行复制或者文件传输的一个命令行工具。它使用一种同ssh一样的安全机制。事实上,它在后台使用ssh连接来进行文件的传输。scp既指一种定义安全复制应该如何工作的协议,也指一种可以被安装的作为OpenSSH工具套的一部分的软件或是指令。
在这篇简单的教程中,我们可以看到一些scp指令的栗子以及如何使用它进行安全的文件传输。
使用scp
scp的基础语法很容易记忆,它看起来就像酱紫:
$ scp source_file_path destination_file_path
根据不同的主机,文件路径应该包扩:完整的主机地址,端口号,用户名,密码以及文件路径。
所以如果你正在从你的本地计算机“发送”文件到远程计算机(上传)的语法是这样的:
$ scp ~/my_local_file.txt user@remote_host.com:/some/remote/directory
当从远程主机复制文件到本地主机(下载),他看起来正好相反:
$ scp user@remote_host.com:/some/remote/directory ~/my_local_file.txt # just download the file
$ scp user@192.168.1.3:/some/path/file.txt .
这里很多是有关用scp来完成常规任务的。除了这些,scp也支持很多其他的选项和功能。让我们快速看一下他们的综述。
没错,默认情况下,scp总是覆盖目标地址的文件。如果你想避免它,那就使用功能更为强大的rsync工具吧。
一、详细输出
有了详细的输出,SCP的程序将输出大量关于它在后台做什么的信息。当程序失败或无法完成请求时这是非常有用的。详细的输出将正确的指明该程序哪里出了问题。
栗子:
$ scp -v ~/test.txt root@192.168.1.3:/root/help2356.txt
Executing: program /usr/bin/ssh host 192.168.1.3, user root, command scp -v -t /root/help2356.txt
OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /home/enlightened/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.1.3 [192.168.1.3] port 22.
debug1: Connection established.
..... OUTPUT TRUNCATED
输出的信息将会很多,而且包含有关连接如何建立,正在使用什么配置和认证文件等等的详细信息。
二、多文件传输
多个文件可以像下面那样用空格分隔开
栗子:
$ scp foo.txt bar.txt username@remotehost:/path/directory/
从远程主机复制多个文件到当前目录
栗子:
$ scp username@remotehost:/path/directory/\{foo.txt,bar.txt\} .
$ scp root@192.168.1.3:~/\{abc.log,cde.txt\} .
三、复制整个文件夹(递归)
为了从一个主机往另一个主机复制整个文件夹,需要使用r switch并且指定目录
栗子如下:
$ scp -v -r ~/Downloads root@192.168.1.3:/root/Downloads
四、在两个远程主机之间复制文件
scp也可以把文件从一个远程主机复制到另一个远程主机。
举个栗子:
$ scp user1@remotehost1:/some/remote/dir/foobar.txt user2@remotehost2:/some/remote/dir/
五、用压缩来加快传输
一个用于加快传输,节省时间和带宽的超酷的选项!你所需要做的就是用C选项来启用压缩功能。该文件在传输过程中被压缩,在目的主机上被解压缩。
栗子如下:
$ scp -vrC ~/Downloads root@192.168.1.3:/root/Downloads
在上面的栗子中我们开启压缩选项移动了整个文件夹。速度的增长取决于多少文件能被压缩。
六、限制带宽的使用
如果你不想scp占用所有的带宽,那么用选项“l”来限制最大传输速度,Kbit/s
栗子如下:
$ scp -vrC -l 400 ~/Downloads root@192.168.1.3:/root/Downloads
七、在远程主机上连接一个不同的端口
如果远程服务器有ssh守护进程运行在不同的端口上(默认是22),那么你需要告诉scp使用“-P”选项来使用指定的端口。
栗子如下:
$ scp -vC -P 2200 ~/test.txt root@192.168.1.3:/some/path/test.txt
八、保存文件属性
“-p”选项(小写),将会保存源文件的修改时间,访问时间以及方式。
举例如下:
$ scp -C -p ~/test.txt root@192.168.1.3:/some/path/test.txt
九、安静模式
在安静模式(“-p”选项),scp输出将会减少,并且不再显示进度表以及警告和诊断信息。
栗子如下:
$ scp -vCq ~/test.txt root@192.168.1.3:/some/path/test.txt
十、特殊标识文件
当使用基于秘钥认证(无密码)。你将使用特殊的包含私有秘钥的标识文件。这个选项直接传递到ssh命令并且以同样的方式工作。
举个栗子:
$ scp -vCq -i private_key.pem ~/test.txt root@192.168.1.3:/some/path/test.txt
十一、使用不同的ssh_config文件
用”F”选项指定不同的ssh_config文件
栗子如下:
$ scp -vC -F /home/user/my_ssh_config ~/test.txt root@192.168.1.3:/some/path/test.txt
十二、使用不同的加密
scp默认使用AES加密,有时候你可能想使用不同的加密。用不同的加密可能会加快转移过程,举例来说,blowfish和arcfour被认为比AES更快的存在(但是安全上不如AES)。
举个栗子:
$ scp -c blowfish -C ~/local_file.txt username@remotehost:/remote/path/file.txt
在上面的栗子中我们用blowfish加密并同时压缩,这可以得到显著的速度上的提升,当然也取决于可用的带宽。
总结
尽管SCP在安全地传输文件方面是非常有效的,它缺乏一个文件同步工具必要的功能。它所能做的就是复制粘贴上述所有文件从一个位置到另一个位置。
一个更强大的工具的Rsync它不仅具有SCP的所有功能,而且增加了更多的功能用来在2个主机智能同步文件。例如,它可以检查并上传只有修改过的文件,忽略现有的文件等等。
PS:本博客欢迎转发,但请注明博客地址及作者~
博客地址:http://www.cnblogs.com/voidy/
<。)#)))≦
12个scp传输文件的命令栗子的更多相关文章
- [转]12个scp传输文件的命令栗子
原文地址: https://www.cnblogs.com/voidy/p/4215891.html copy原文是为了修改部分错误以及便于记录自己的笔记.英文原文点:这里 安全复制 Scp(Secu ...
- scp传输文件的命令
scp传输文件的命令 一:scp常规的使用方式: scp可以进行简单的远程复制文件的功能.它是一个在各个主机之间进行复制或文件传输的一个命令工具.它使用一种同ssh一样的安全机制来进行文件的传输. 注 ...
- Linux 下 scp 传输文件脚本
脚本执行效果: (1).远程传输本地 /ora_exp/dmp/CWDB_RAMS_* 文件至 11.4.24.21 的 /ora_exp/dmp 目录下. 脚本编写步骤: 假设 oracle 用 ...
- 【NXP开发板应用—智能插排】1.如何使用scp传输文件
首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提供了一个非 ...
- 虚拟机使用scp传输文件提示“WARNING REMOTE HOST IDENTIFICATION HAS CHANGED”解决方式
虚拟机使用scp传输文件提示"WARNING REMOTE HOST IDENTIFICATION HAS CHANGED"解决方式 简单的说就是虚拟机里保存的认证密钥不正确了,需 ...
- 利用scp传输文件
在linux下一般用scp这个命令来通过ssh传输文件. 从服务器上下载文件 scp username@servername:/path/filename /var/www/local_dir(本地目 ...
- scp 远程文件复制命令
scp 远程文件复制工具 1.命令功能 scp用户在不同linux主机间复制文件,他采用ssh协议保障复制的安全性.scp复制是全量完整复制,效率不高,使用与第一次复制,增量复制建议rsync命令. ...
- scp 远程文件拷贝命令
Linux scp命令用于Linux之间复制文件和目录. scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令. 1.从本地复制到远程 命令格式: ...
- expect+scp传输文件发现文件丢失
背景 使用expect+scp去跨机器传输文件,(别问我为什么,因为公司的测试机器都是通过堡垒机的,无法绕开堡垒机,只能暂时使用这个方法了),结果发现从A传递到B的tar.gz文件大小不一致了的,当时 ...
随机推荐
- 父类和子类以及super关键字
super和this关键字的特点类似:super代表的是父类对象的引用. 当子父类的成员出现同名时,可以通过super来进行区分. 子类的构造方法中,通过super关键字调用父类的构造方法. publ ...
- javascript字符串格式化string.format
String.prototype.format = function () { var values = arguments; return this.replace(/\{(\d+)\}/g, fu ...
- 用rem实现h5页面的编写
一 静态页面的布局 将这段代码加到script中 (function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orienta ...
- bzoj3312: [Usaco2013 Nov]No Change
题意: K个硬币,要买N个物品.K<=16,N<=1e5 给定买的顺序,即按顺序必须是一路买过去,当选定买的东西物品序列后,付出钱后,货主是不会找零钱的.现希望买完所需要的东西后,留下的钱 ...
- Android(java)学习笔记80:Html嵌入到Java显示乱码
1. Html嵌入到Java显示乱码: 解决方案: 使用 loadData方法是中文部分会出现乱码,即使指定“utf-8”.“gbk”.“gb2312”也一样. webView.getSettings ...
- void (*signal(int sig, void (*func) (int))) (int)理解
http://blog.csdn.net/sever2012/article/details/8281271 1.signal( int sig, void (*func)(int))signal是一 ...
- 【BZOJ3460】Jc的宿舍(树上莫队+树状数组)
点此看题面 大致题意: 一棵树,每个节点有一个人,他打水需要\(T_i\)的时间,每次询问两点之间所有人去打水的最小等待时间. 伪·强制在线 这题看似强制在线,但实际上,\(pre\ mod\ 2\) ...
- vue学习之路 - 1.初步感知
一.安装 这里使用node的npm包管理工具进行操作.操作前请先下载node. 在工程文件夹中使用以下命令安装vue: npm install vue 如下图所示:我在 helloworld 文件夹中 ...
- PAM认证机制
PAM:Pluggable Authentication Modules 认证库:文本文件,MySQL,NIS,LDAP等 Sun公司于1995 年开发的一种与认证相关的通用框架机制 PAM 是关注如 ...
- 什么是 TCP/IP?
前言: 精通 TCP/IP,熟练使用 Socket 进行网路编程. 看到这句话,有没有感到很熟悉呀?相信很多人在投递简历的时候都看到过这条要求,很多人会觉得我们在实际开发中一般用不到这些知识,所以对这 ...