整理scp
,wget
,ftp
以及其余Linux中经常使用的文件传输方式的介绍。html
当没有安装web server
和ftp server
的时候或感受上面的方法比较麻烦,那么用scp
命令就会排上用场。linux
scp
是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它相似的命令有cp
,不过cp
只是在本机进行拷贝不能跨服务器,并且scp
传输是加密的。可能会稍微影响一下速度。web
一、咱们须要得到远程服务器上的某个文件,远程服务器既没有配置ftp服务器,没有开启web服务器,也没有作共享,没法经过常规途径得到文件时,只须要经过scp命令即可轻松的达到目的。算法
二、咱们须要将本机上的文件上传到远程服务器上,远程服务器没有开启ftp服务器或共享,没法经过常规途径上传是,只须要经过scp命令即可以轻松的达到目的。apache
获取远程服务器上的文件浏览器
scp root@192.168.0.223:/apps/test/a.md /Users/shui/Desktop/b.mdtomcat
root@192.168.0.223 : 使用root用户登陆服务器192.168.0.223安全
/apps/test/a.md:本机要传递过去的文件服务器
/Users/shui/Desktop/b.md:远程主机目录网络
获取远程服务器上的目录
scp -r root@192.168.0.223:/apps/test/a /Users/shui/Desktop/b
将本地文件上传到服务器上
scp test.txt root@192.168.0.223:/apps/test/a.txt
将本地目录上传到服务器上
scp -r dir1 root@192.168.0.223:/apps/test/a
当 scp 指定端口时
scp -P 2222 -r dir1 root@192.168.0.223:/apps/test/a
可能有用的几个参数
-v 和大多数 linux 命令中的 -v 意思同样 , 用来显示进度 . 能够用来查看链接 , 认证 , 或是配置错误 .
-C 使能压缩选项 .
-4 强行使用 IPV4 地址 .
-6 强行使用 IPV6 地址 .
参考:scp 命令
Linux系统中的wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,咱们常常要下载一些软件或从远程服务器恢复备份到本地服务器。wget支持HTTP,HTTPS和FTP协议,可使用HTTP代理。所谓的自动下载是指,wget能够在用户退出系统的以后在后台执行。这意味这你能够登陆系统,启动一个wget下载任务,而后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时须要用户一直的参与,这省去了极大的麻烦。
wget 能够跟踪HTML页面上的连接依次下载来建立远程服务器的本地版本,彻底重建原始站点的目录结构。这又常被称做”递归下载”。在递归下载的时候,wget 遵循Robot Exclusion标准(/robots.txt). wget能够在下载的同时,将连接转换成指向本地文件,以方便离线浏览。
wget 很是稳定,它在带宽很窄的状况下和不稳定网络中有很强的适应性.若是是因为网络的缘由下载失败,wget会不断的尝试,直到整个文件下载完毕。若是是服务器打断下载过程,它会再次联到服务器上从中止的地方继续下载。这对从那些限定了连接时间的服务器上下载大文件很是有用。
下载单个文件
下载并以不一样的文件名保存
wget -O tomcat.tar.gz http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24.tar.gz
后台下载
wget -b http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
ftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间或者在两个远程主机之间进行文件传输。
FTP 协议容许数据在不一样文件系统的主机之间传输。尽管这个协议在传输数据上提供了高适应性,可是它并无尝试去保留一个特定文件系统上的文件属性(例如一个文件的保护模式或者修改次数)。并且 FTP 协议不多对一个文件系统的总体结构做假定,也不提供这样的功能,好比递归的拷贝子目录。在使用 ftp 命令时,须要注意 FTP 协议的这些特性。当须要保留文件属性或者须要递归的拷贝子目录时,可使用 rcp/scp 等命令。
语法
ftp [-dignv][主机名称或IP地址]
参数:
-d 详细显示指令执行过程,便于排错或分析程序执行的情形。
-i 关闭互动模式,不询问任何问题。
-g 关闭本地主机文件名称支持特殊字符的扩充特性。
-n 不使用自动登录。
-v 显示指令执行过程。
综上所述
各类文件传输方式的特征表现各有千秋,咱们从如下几个方面综合对比,更深刻地了解它们各自的特性。
传输性能
wget 经过支持后台执行及断点续传提升文件传输效率 ; rsync 则以其高效的传输及压缩算法达到快传输的目的。
配置难度
rcp 只需进行简单的配置,建立 .rhost 文件以及设置 /etc/hosts 文件中主机名与 IP 地址列表; wget 设置设置方便简单,只需在客户端指定参数执行命令便可; rsync 在使用前须要对服务端 /etc/rsyncd.conf 进行参数设定,配置内容相对复杂。
安全性能
ftp、rcp 不保证传输的安全性,scp、rsync 则都可基于 ssh 认证进行传输,提供了较强的安全保障。 wget 也可经过指定安全协议作到安全传输。
经过上述的对比不难发现,每种文件传输方法基于其自身的特色与优点均有其典型的适用场景: