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