您的位置:首页 > 理论基础 > 计算机网络

网络上下载文件的工具wget|scp

2014-04-17 16:28 225 查看
1.wget

·简介:wget是一个从网络上自动下载文件的自由工具。wget下载数据的时候使用的协议可以是http,https,ftp三种协议。

使用wget命令时的输出信息中可以看到本地下载使用的是什么协议。

·格式:wget [options] [URL]

eg:

wget suancai-host:/home/jianzai/test.php 下载test.php这个文件

wget ftp://suancai-host:/home/jianzai/test.php
wget ftp://suancai-host/home/jianzai/test.php
wget http://suancai-host:/home/jianzai/test.php
wget
-r suancai-host:/home/jianzai/app-workbench 递归下载app-workbench以及子目录

wget
-r ftp://suancai-host/home/jianzai/app-workbench
wget
-r http://suancai-host:/home/jianzai/app-workbench
wget
-r -nH -c --level=0 --cut-dirs=8 -np --limit-rate=20000000 suancai-host:/home/jianzai/app-workbench/backend/data/reload-data/cpm_stat_data/models

备注,如果是下载文件,在本地的目录结构直接就是文件。如果下载的目录,本地的目录结构包括远程主机名以及远程的目录结构。

wget的重要参数:

(1)-nd --no-directories 表示远程目录中含有子目录时,在本地时就不在创建相应的层级目录,而是将所有的文件放到当前目录中。

(2)-r 当用wget下载目录时,需要用到此选项,表示递归下载目录及其子目录。如果下载文件时,加上-r选项,那么远程主机上的目录结构就会下载到本地。

(3)-nH 当使用wget
-r ftp://suancai-host/home/jianzai/app-workbench递归下载app-workbench完成后,app-workbench在本地当前目录下的结构是suancai-host/home/jianzai/app-workbench,使用-nH参数使目录结构变成home/jianzai/app-workbench
(4)--cut-dirs=num
例如是用--cut-dirs=2后,上面的例子在本地的目录结构就成了suancai-host/app-workbench,当同时使用-nH --cut-dirs=2后,本地的目录结构就变成了app-workbench
详细说明参见manpage

(5)--level=num
当wget下载目录的时候,此选选项表示递归的深度,例如当使用wget -r--level=2 ftp://suancai-host/home/jianzai/app-workbench,只会去下载app-workbench目录下的文件,不会再去下载其子目录。level设置为0或inf时,表示无限递归,也即全部下载。默认的递归深度为5
(6)--limit-rate=num
配置下载的速度,单位是B/s. 也可以自己设置单位,例如--limit-rate=20k表示下载速度是20KB/s

(7)-o --output-file=file 表示将wget下载的输出信息写入file文件中

(8)-a --append-output=file 表示将wget下载的输出信息追加到file文件中

(9)-c 支持断点续传,即使我们的ctrl+c了wget命令,再次使用wget -c仍然是接着上次的进度开始下载

(10)--no-remove-listing 当wget使用ftp下载文件目录中对象时,会先在远程服务器上获取该目录下所包含对象的清单list,并序列化成一个名称为.listing的隐藏文件。

(11)-O
filename 表示将远程的文件下载到本地后,重新命名为filename。是大写字母O,不是小写o.

(12)-q
--quiet wget执行时,不输出任何提示信息

(13)-t
num 表示当出现网络不好等情况后,wget重试的次数。默认的为20次,若num为0或inf时,表示重试无限次。

2.scp

scp是一个基于SSH的不同Linux系统间相互拷贝文件或者目录的工具。

scp是有Security的文件copy,基于ssh登录。也就是它实际上是使用的ssh协议。和sftp的运作原理是类似的。

命令基本格式:

scp [options] file_source file_target

应用实例:

(a)从 本地 复制到 远程

scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root

(b)从 远程 复制到 本地

scp root@172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz

常用的用例:

(1)本地文件或者目录拷贝到远程主机上:

scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music

scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music/001.mp3

scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music

scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3

scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/

scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

(2)远程主机上的文件或者目录下载到本地来:

将远程和本地置换下顺序就行了

其他的重要选项:

-r 表示递归copy目录

-q 安静模式,不打印scp的命令输出信息

-l 限制速度,单位为Kbps

-p 保留文件原有的权限信息、时间戳信息等

-o 可以加上一些ssh的选项,例如StrictHostKeyChecking,表示在连接远程主机时,会主动把对方的公钥加到known_hosts中,而不会提示用户是否要记录这样的信息。例如,ssh
-o StrictHostKeyChecking=no root@10.10.10.1

参考资料来源于:
http://caisangzi.blog.51cto.com/6387416/1296244
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: