centos上网
来源:互联网 发布:sql设置默认值为0 编辑:程序博客网 时间:2024/04/29 21:44
用linux命令浏览网页:用Wget命令来浏览网页
以下是在liux模式下用linux命令浏览网页的方法,可以用linux命令:lynx,links浏览web,linux命令:lftp,wget,curl等上传/下载软件。
用adsl上网:
rpm -e rp-pppoe-3.2-3 先删除旧版的程序
rpm -ivh rp-pppoe-3.3-1.i386.rpm 安装最新版本
安装完后执行adsl-setup命令,然后输入帐号,密码等。当要上网时执行adsl-start即可拨号上网,若要断线则执行adsl-stop命令,如果想查看连接状态可用adsl-status命令。
文本下可以用用linux命令:lynx,links浏览web.上传/下载软件可以用用linux命令:lftp,wget,curl等工具,在文本命令行下的网网络工具就更多了。
具体的命令参数以及使用可以man命令查看。
以上是如何在liux模式下用linux命令浏览网页的方法。
【编辑推荐】
- Ubuntu Linux系统中使用linux命令行模式修改时区
- 在Linux命令行界面使用代理服务器上网
- linux下图形模式与linux命令行模式切换方法
linux下使用文本浏览器lynx下载文件
IN: LINUX :-) HOT: 4,411 ℃
在linux字符界面下我们大多使用wget下载文件,不过有时国外网站下载地址是动态的,此时在在文本浏览器直接下载就会比较方便,如lynx。
Lynx is the text web browser.
lynx官方网站:http://lynx.isc.org/
User Guide:http://lynx.isc.org/current/lynx2-8-8/lynx_help/Lynx_users_guide.html
使用方法很简单,使用lynx浏览下载页面,提示的”是否接受cookies”中选择 a (ALL) 或 y (YES) 或者加上 -accept_all_cookies 参数启动lynx,光标移到下载链接,按”d“下载。会出现Save to Disk,输入文件名(可输入相对或绝对路径)保存即可,默认在当前路径。
如GoFace现在去nginx官网上去下载nginx源码包。
#lynx nginx.org/en/download.html
把光标移动到需要下载的链接上,按d下载。
lynx键盘操作表:
移动命令:
下方向键:页面上的下一个链接(用高亮度显示)。
上方向键:页面上的前一个链接(用高亮度显示)。
回车和右方向键:
跳转到链接指向的地址。
左方向键:回到上一个页面。
滚动命令:
+,Page-Down,Space,Ctrl+f:
向下翻页。
-,Page-Up,b,Ctrl+b:
向上翻页。
Ctrl+a: 移动到当前页的最前面。
Ctrl+e: 移动到当前页的最后面。
Ctrl+n: 向下翻两行。
Ctrl+p: 往回翻两行。
): 向下翻半页。
(: 往回翻半页。
#: 回到当前页的 Toolbar 或 Banner。
文件操作命令:
c: 建立一个新文件。
d: 下载选中的文件。
E: 编辑选中的文件。
f: 为当前文件显示一个选项菜单。
m: 修改选中文件的名字或位置。
r: 删除选中的文件。
t: Tag highlighted file。
u: 上载一个文件到当前目录。
其他命令:
?,h: 帮助。
a: 把当前链接加入到一个书签文件里。
c: 向页面的拥有者发送意见或建议。
d: 下载当前链接。
e: 编辑当前文件。
g: 跳转到一个用户指定的URL或文件。
G: 编辑当前页的URL,并跳转到这个URL。
i: 显示文档索引。
j: 执行预先定义的“短”命令。
k: 显示键盘命令列表。
l: 列出当前页上所有链接的地址。
m: 回到首页。
o: 设置选项。
p: 把当前页输出到文件,e-mail,打印机或其他地方。
q: 退出。
/: 在当前页内查找字符串。
s: 在外部搜索输入的字符串。
n: 搜索下一个。
v: 查看一个书签文件。
V: 跳转到访问过的地址。
x: 不使用缓存。
z: 停止当前传输。
[backspace]:
跳转到历史页(同 V 命令)。
=: 显示当前页的信息。
: 查看当前页的源代码。
!: 回到shell提示符下。
_: 清除当前任务的所有授权信息。
*: 图形链接模式的切换开关。
@: 8位传输模式或CJK模式的切换开关。
[: pseudo_inlines 模式的切换开关。
]: 为当前页或当前链接发送一个“HEAD”请求。
Ctrl+r: 重新装如当前页并且刷新屏幕。
Ctrl+w: 刷新屏幕。
Ctrl+u: 删除输入的行。
Ctrl+g: 取消输入或者传送。
Ctrl+t: 跟踪模式的切换开关。
;: 看 Lynx 对当前任务的跟踪记录。
Ctrl+k: 调用 Cookie Jar 页。
数字键: 到后面的第 n 个链接。
当然除了lynx外linux下还有很多其他的文本浏览器,如elinks(GoFace也很推荐),links(指向elinks的软链接),w3m
lftp:
今天在解决一个远程服务器备份的问题时,用到了lftp的相关知识。整理如下:
lftp的功能比较强大,相比原来用ftp,方便了很多。
1、登陆:
lftp ftp://yourname@site
pwd:*****
或 open ftp://yourname@site
2、基本操作(转)
lftp使用介绍
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp的界面非常想一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。
命令行语法
要看lftp的命令行语法,只要在shell中输入lftp --help
lftp [OPTS]
'lftp'是在 rc 文件执行后 lftp 执行的第一个命令
-f 执行文件中的命令后退出
-c 执行命令后退出
--help 显示帮助信息后退出
--version 显示 lftp 版本后退出
其他的选项同 'open' 命令
-e 在选择后执行命令
-u [,] 使用指定的用户名/口令进行验证
-p 连接指定的端口
主机名, URL 或书签的名字
如果在命令行中输入的站点名称,lftp将直接登录站点,比如
$lftp ftp://.............
如果在命令行不输入站点名称,则必须在进入到lftp界面后用open命令打开
[yhj@ccse-yhj yhj]$ lftp
lftp :~> open ftp://...................
常用命令
* 下载单个文件和一组文件,断点续传用-c参数
lftp ................:/> get -c ls-lR.txt
lftp ...............:/> mget *.txt
* 镜像(反镜像即上传)一个目录,可以用多个线程并行镜像一个目录(--parallel=N)
lftp ................:/> mirror incoming local_name
lftp ................:/> mirror -R local_name
lftp ................:/> mirror --parallel=3 incoming local_name
* 多线程下载,类似网络蚂蚁的功能;缺省是5个线程
lftp ................:/> pget -n 4 ls-lR.txt
* 后台任务管理
缺省情况下,按 Ctrl+z,正在执行的任务将转为后台执行,也可以在命令行末尾加&符号使任务在后台执行。用jobs命令可以查看所有的后台进程。用queue命令可以排队新的任务。如果退出lftp是还有任务在后台执行,lftp将转为后台执行。
* 其它用法
lftp支持类似bash的管道操作,例如用下面的命令可以将ftp服务器上的特定目录下(也可以是整个站点)所有文件的大小存到本地的文件ls.txt中
lftp ................:/> du incoming > ls.txt
相关文件
/etc/lftp.conf
全局配置文件,实际位置依赖系统配置文件目录,可能在/etc,也可能在/usr/local/etc
~/.lftp/rc, ~/.lftprc
用户配置文件,将在/etc/lftp.conf之后执行,所以这里面的设置会覆盖/etc/lftp.conf中的设置。
lftp 缺省不会显示 ftp 服务器的欢迎信息和错误信息,这在很多时候不方便,因为你有可能想知道这个服务器到底是因为没开机连不上,还是连接数已满。如果是这样,你可以在 ~/.lftprc 里写入一行
debug 3
就可以看到出错信息了。
更多的配置选项请查man手册或在lftp界面内用命令 set -a 获得。
~/.lftp/log
当lftp转为后台非挂起模式执行时,输出将重定向到这里
~/.lftp/bookmarks
这是lftp存储书签的地方,可以lftp查看bookmark命令
~/.lftp/cwd_history
这个文件用来存储访问过的站点的工作目录
~/.lftprc
在用lftp访问国内一些ftp服务器时,往往看到的中文是乱码
^_^不用慌,这是由于服务器和本地编码不一致造成的。我们只要在主目录下新建一个文件~/.lftprc或者~/.lftp/rc
并在其中加入以下内容:
debug 3set ftp:charset GBKset file:charset UTF-8#set ftp:passtive-mode no#alias utf8 " set ftp:charset UTF-8"#alias gbk " set ftp:charset GBK"
登录ftp服务器
言归正传,我们先来看看怎么登录ftp服务器
lftp ftp://user:password@site:port
lftp user:password@site:port
lftp site -p port -u user,password
lftp site:port -u user,password
上面的几种方式都能正常工作,不过密码都是明文,这样好像不太安全哦。没关系
lftp user@site:port
系统会提示输入password,密码就回显为******了
不过每次都输入这么多,好麻烦哦。 如果有类似leapftp的站点管理器就好了,其实lftp早就给我们想好了: 这就是bookmark。后面我们将会看到。
常用命令
在终端运行
man lftp
或登录ftp后输入
help
就可以看到命令列表
下面我们看一下lftp常用的命令:
ls
显示远端文件列表(!ls 显示本地文件列表)。
cd
切换远端目录(lcd 切换本地目录)。
get
下载远端文件。
mget
下载远端文件(可以用通配符也就是 *)。
pget
使用多个线程来下载远端文件, 预设为五个。
mirror
下载/上传(mirror -R)/同步 整个目录。
put
上传文件。
mput
上传多个文件(支持通配符)。
mv
移动远端文件(远端文件改名)。
rm
删除远端文件。
mrm
删除多个远端文件(支持通配符)。
mkdir
建立远端目录。
rmdir
删除远端目录。
pwd
显示目前远端所在目录(lpwd 显示本地目录)。
du
计算远端目录的大小
!
执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代)
lcd
切换本地目录
lpwd
显示本地目录
alias
定义别名
bookmark
设定书签。
exit
退出ftp
快捷书签
补充作者:aBiNg
ftp中的bookmark命令,是将配置写到~/.lftp/bookmarks文件中;我们可以直接修改此文件,快速登陆ftp服务器。
3、mirror 同步镜像,备份服务器文件
今天主要的问题是解决如何备份服务器端文件的问题。了解了mirror指令的用法后,发现比较适合而且好用。
基本使用方法:
1)、下载服务器端文件:
# mirror –vn RCD LCD //RCD为远程路径,LCD为本地路径
2)、上传文件:
# mirror –R LCD RCD
下附一个自动同步的脚本:
#!bin/bash
echo “script start at `date ”+%Y-%m-%d %H:%M:%S”
HOST=”hostname”
USER=”yourname”
PASS=”password”
LCD=”LocalePath”
RCD=”RemotePath”
/usr/sbin/lftp << EOF
open ftp://$USER:$PASS@$HOST
mirror $RCD $LCD
EOF
echo “script end at “ `date ”+%Y-%m-%d %H:%M:%S”
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……
一 wget简介
wget是linux上的命令行的下载工具。这是一个GPL许可证下的自由软件。wget支持HTTP和FTP协议,支持代理服务器和断点续传功能,能够自动递归远程主机的目录,找到合乎条件的文件并将其下载到本地硬盘上;如果必要,wget将恰当地转换页面中的超级连接以在本地生成可浏览的镜像。由于没有交互式界面,wget可在后台运行,截获并忽略HANGUP信号,因此在用户推出登录以后,仍可继续运行。通常,wget用于成批量地下载Internet网站上的文件,或制作远程网站的镜像。
二 实例
下载
下载192.168.1.168首页并且显示下载信息
wget -d http://192.168.1.168
下载192.168.1.168首页并且不显示任何信息
wget -q http://192.168.1.168
下载filelist.txt中所包含的链接的所有文件
wget -i filelist.txt
下载到指定目录
wget -P/tmp ftp://user:passwd@url/file
把文件file下载到/tmp目录下。
wget 是一个命令行的下载工具。对于我们这些 Linux 用户来说,几乎每天都在使用它。下面为大家介绍几个有用的 wget 小技巧,可以让你更加高效而灵活的使用 wget。
* $ wget -r -np -nd http://example.com/packages/
这条命令可以下载 http://example.com 网站上 packages 目录中的所有文件。其中,-np 的作用是不遍历父目录,-nd 表示不在本机重新创建目录结构。
* $ wget -r -np -nd --accept=iso http://example.com/centos-5/i386/
与上一条命令相似,但多加了一个 --accept=iso 选项,这指示 wget 仅下载 i386 目录中所有扩展名为 iso 的文件。你也可以指定多个扩展名,只需用逗号分隔即可。
* $ wget -i filename.txt
此命令常用于批量下载的情形,把所有需要下载文件的地址放到 filename.txt 中,然后 wget 就会自动为你下载所有文件了。
* $ wget -c http://example.com/really-big-file.iso
这里所指定的 -c 选项的作用为断点续传。
* $ wget -m -k (-H) http://www.example.com/
该命令可用来镜像一个网站,wget 将对链接进行转换。如果网站中的图像是放在另外的站点,那么可以使用 -H 选项。
三 参数
代码:
$ wget --help
GNU Wget 1.9.1,非交互式的网络文件下载工具。
用法: wget [选项]... [URL]...
长选项必须用的参数在使用短选项时也是必须的。
启动:
-V, --version 显示 Wget 的版本并且退出。
-h, --help 打印此帮助。
-b, -background 启动后进入后台操作。
-e, -execute=COMMAND 运行‘.wgetrc’形式的命令。
日志记录及输入文件:
-o, --output-file=文件 将日志消息写入到指定文件中。
-a, --append-output=文件 将日志消息追加到指定文件的末端。
-d, --debug 打印调试输出。
-q, --quiet 安静模式(不输出信息)。
-v, --verbose 详细输出模式(默认)。
-nv, --non-verbose 关闭详细输出模式,但不进入安静模式。
-i, --input-file=文件 下载从指定文件中找到的 URL。
-F, --force-html 以 HTML 方式处理输入文件。
-B, --base=URL 使用 -F -i 文件选项时,在相对链接前添加指定的 URL。
下载:
-t, --tries=次数 配置重试次数(0 表示无限)。
--retry-connrefused 即使拒绝连接也重试。
-O --output-document=文件 将数据写入此文件中。
-nc, --no-clobber 不更改已经存在的文件,也不使用在文件名后添加 .#(# 为数字)的方法写入新的文件。
-c, --continue 继续接收已下载了一部分的文件。
--progress=方式 选择下载进度的表示方式。
-N, --timestamping 除非远程文件较新,否则不再取回。
-S, --server-response 显示服务器回应消息。
--spider 不下载任何数据。
-T, --timeout=秒数 配置读取数据的超时时间 (秒数)。
-w, --wait=秒数 接收不同文件之间等待的秒数。
--waitretry=秒数 在每次重试之间稍等一段时间 (由 1 秒至指定的 秒数不等)。
--random-wait 接收不同文件之间稍等一段时间(由 0 秒至 2*WAIT 秒不等)。
-Y, --proxy=on/off 打开或关闭代理服务器。
-Q, --quota=大小 配置接收数据的限额大小。
--bind-address=地址 使用本机的指定地址 (主机名称或 IP) 进行连接。
--limit-rate=速率 限制下载的速率。
--dns-cache=off 禁止查找存于高速缓存中的 DNS。
--restrict-file-names=OS 限制文件名中的字符为指定的 OS (操作系统) 所允许的字符。
目录:
-nd --no-directories 不创建目录。
-x, --force-directories 强制创建目录。
-nH, --no-host-directories 不创建含有远程主机名称的目录。
-P, --directory-prefix=名称 保存文件前先创建指定名称的目录。
--cut-dirs=数目 忽略远程目录中指定数目的目录层。
HTTP 选项:
--http-user=用户 配置 http 用户名。
--http-passwd=密码 配置 http 用户密码。
-C, --cache=on/off (不)使用服务器中的高速缓存中的数据 (默认是使用的)。
-E, --html-extension 将所有 MIME 类型为 text/html 的文件都加上 .html 扩展文件名。
--ignore-length 忽略“Content-Length”文件头字段。
--header=字符串 在文件头中添加指定字符串。
--proxy-user=用户 配置代理服务器用户名。
--proxy-passwd=密码 配置代理服务器用户密码。
--referer=URL 在 HTTP 请求中包含“Referer:URL”头。
-s, --save-headers 将 HTTP 头存入文件。
-U, --user-agent=AGENT 标志为 AGENT 而不是 Wget/VERSION。
--no-http-keep-alive 禁用 HTTP keep-alive(持久性连接)。
--cookies=off 禁用 cookie。
--load-cookies=文件 会话开始前由指定文件载入 cookie。
--save-cookies=文件 会话结束后将 cookie 保存至指定文件。
--post-data=字符串 使用 POST 方法,发送指定字符串。
--post-file=文件 使用 POST 方法,发送指定文件中的内容。
HTTPS (SSL) 选项:
--sslcertfile=文件 可选的客户段端证书。
--sslcertkey=密钥文件 对此证书可选的“密钥文件”。
--egd-file=文件 EGD socket 文件名。
--sslcadir=目录 CA 散列表所在的目录。
--sslcafile=文件 包含 CA 的文件。
--sslcerttype=0/1 Client-Cert 类型 0=PEM (默认) / 1=ASN1 (DER)
--sslcheckcert=0/1 根据提供的 CA 检查服务器的证书
--sslprotocol=0-3 选择 SSL 协议;0=自动选择,
1=SSLv2 2=SSLv3 3=TLSv1
FTP 选项:
-nr, --dont-remove-listing 不删除“.listing”文件。
-g, --glob=on/off 设置是否展开有通配符的文件名。
--passive-ftp 使用“被动”传输模式。
--retr-symlinks 在递归模式中,下载链接所指示的文件(连至目录则例外)。
递归下载:
-r, --recursive 递归下载。
-l, --level=数字 最大递归深度(inf 或 0 表示无限)。
--delete-after 删除下载后的文件。
-k, --convert-links 将绝对链接转换为相对链接。
-K, --backup-converted 转换文件 X 前先将其备份为 X.orig。
-m, --mirror 等效于 -r -N -l inf -nr 的选项。
-p, --page-requisites 下载所有显示完整网页所需的文件,例如图像。
--strict-comments 打开对 HTML 备注的严格(SGML)处理选项。
递归下载时有关接受/拒绝的选项:
-A, --accept=列表 接受的文件样式列表,以逗号分隔。
-R, --reject=列表 排除的文件样式列表,以逗号分隔。
-D, --domains=列表 接受的域列表,以逗号分隔。
--exclude-domains=列表 排除的域列表,以逗号分隔。
--follow-ftp 跟随 HTML 文件中的 FTP 链接。
--follow-tags=列表 要跟随的 HTML 标记,以逗号分隔。
-G, --ignore-tags=列表 要忽略的 HTML 标记,以逗号分隔。
-H, --span-hosts 递归时可进入其它主机。
-L, --relative 只跟随相对链接。
-I, --include-directories=列表 要下载的目录列表。
-X, --exclude-directories=列表 要排除的目录列表。
-np, --no-parent 不搜索上层目录。
四 FQA
A.使用wget工具
linux所以的主要版本都自带了wget这个下载工具.
bash$ wget http://place.your.url/here
它还能控制ftp来下载整个web站点的各级目录,当然,如果你不小心,可能会把整个网站以及其他和他做链接的网站全部下载下来.
bash$ wget -m http://target.web.site/subdirectory
由于这个工具具有很强的下载能力,所以可以在服务器上把它用作镜像网站的工具.让它按照”robots.txt”的规定来执行.
有很多参数用来控制它如何正确地做镜像,可以限制链接的类型和下载文件的类型等等.例如:只下载有联系的链接并且忽略GIF图片:
bash$ wget -m -L –reject=gif http://target.web.site/subdirectory
wget也能够实现断点续传(-c参数),当然,这种操作是需要远程服务器支持的.
bash$ wget -c http://the.url.of/incomplete/file
可以把断点续传和镜像功能结合起来,这样可以在以前断过多次的情况下继续镜像一个有大量选择性文件的站点.如何自动实现这个目的我们在后面会讨论得更多.
如果你觉得下载时老是断线会影响你办公的话,你可以限制wget重试的次数.
bash$ wget -t 5 http://place.your.url/here
这样重试五次后就放弃了.用”-t inf”参数表示永远不放弃.不停地重试.
B.那对于代理服务该怎么办呢?
可以使用http代理的参数或者在.wgetrc配置文件里指定一个如何通过代理去下载的途径.但是有这么一个问题,如果通过代理来进行断点续传的话可能会有几次失败.如果有一次通过代理下载的过程发生中断,那么代理服务器上缓存里保存是那个完整的文件拷贝. 所以当你用”wget -c”来下载剩余部分的时候代理服务器查看它的缓存,并错误地认为你已经下载了整个文件.于是就发出了错误的信号.这个时候你可以用添加一个特定的请求参数来促使代理服务器清除他们的缓存:
bash$ wget -c –header=”Pragma: no-cache” http://place.your.url/here
这个”–header”参数能够以各种数字,各种方式添加。通过它我们可以更改web服务器或者代理服务器的某些属性。有些站点不提供外部连接的文件服务,只有通过同一个站点上其他的一些页面时内容才会被提交。这个时候你可以用加上”Referer:”参数:
bash$ wget –header=”Referer: http://coming.from.this/page” http://surfing.to.this/page
有些特殊的网站只支持某种特定的浏览器,这个时候可以用”User-Agent:”参数
bash$ wget –header=”User-Agent: Mozilla/4.0 (compatible; MSIE 5.0;Windows NT; DigExt)” http://msie.only.url/here
C.那我怎么设定下载时间呢?
如果你需要在你的办公电脑上通过和其他同事共享的一个连接来下载一些很大的文件,而且你希望你的同事不会因为网络速度的减慢而收到影响,那你就应该尽量避开高峰时段。当然,不需要在办公室里等到所以人都走掉,也不需要在家里用完晚饭后还惦记着要上网下载一次。
用at来就可以很好的定制工作时间:
bash$ at 23:00
warning: commands will be executed using /bin/sh
at> wget http://place.your.url/here
at> press Ctrl-D
这样,我们设定了下载工作在晚上11点进行。为了使这个安排能够正常进行,请确
认atd这个后台程序正在运行。
D.下载要花很多时间?
当你需要下载大量的数据,而且你又没有享有足够的带宽,这个时候你会经常发现在你安排的下载任务还没有完成,一天的工作却又要开始了。
作为一个好同事,你只能停掉了这些任务,而开始另外的工作。然后你又需要反复地重复使用”wget -c”来完成你的下载。这样肯定太繁琐了,所以最好是用crontab来自动执行。创建一个纯文本文件,叫做”crontab.txt”,包含下面的内容:
0 23 * * 1-5 wget -c -N http://place.your.url/here
0 6 * * 1-5 killall wget
这个crontab文件指定某些任务定期地执行。前五列声明是什么时候执行这个命令,而每行的剩余部分则告诉crontab执行什么内容。
前两列指定了每天一到晚上11点就开始用wget下载,一到早上6点就停止一切wget下载。第三四列的*表示每个月的每一天都执行这个任务。第五列则指定了一个星期的哪几天来执行这个程序。 –”1-5″表示从星期一到星期五。
这样在每个工作日的晚上11点,下载工作开始,到了上午的6点,任何的wget任务就被停掉了。你可以用下面的命令来执行crontab:bash$ crontab crontab.txt
wget的这个”-N”参数将会检查目标文件的时间戳,如果匹配了,下载程序就会停止,因为它说明整个文件已经下载完全了。
用”crontab -r”可以删除这个计划安排。我已经多次采用这种方法,通过共享的电话拨号来下载过很多的ISO镜像文件,还是比较实用的。
E.如何下载动态变化的网页
有些网页每天都要根据要求变化好几次.所以从技术上讲,目标不再是一个文件,它没有文件长度.因此”-c”这个参数也就失去了意义.
例如:一个PHP写的并且经常变动的linux周末新闻网页:
bash$ wget http://lwn.net/bigpage.php3
我办公室里的网络条件经常很差,给我的下载带了很大的麻烦,所以我写了个简单的脚本来检测动态页面是否已经完全更新了.
#!/bin/bash
#create it if absent
touch bigpage.php3
#check if we got the whole thing
while ! grep -qi bigpage.php3
do
rm -f bigpage.php3
#download LWN in one big page
wget http://lwn.net/bigpage.php3
done
这个脚本能够保证持续的下载该网页,直到网页里面出现了" ",这就表示该文件已经完全更新了.
F.对于ssl和Cookies怎么办?
如果你要通过ssl来上网,那么网站地址应该是以”https://”来开头的.在这样的情况下你就需要另外一种下载工具,叫做curl,它能够很容易获得.有些网站迫使网友在浏览的时候必须使用cookie.所以你必须从在网站上得到的那个 Cookie里面得到”Cookie:”这个参数.这样才
能保证下载的参数正确.对于lynx和Mozilla的Cookie的文件格式,用下面的:
bash$ cookie=$( grep nytimes ~/.lynx_cookies |awk {printf(”%s=%s;”,$6,$7)} )
就可以构造一个请求Cookie来下载http://www.nytimes.com上的内容.当然,你要已经用这个浏览器在该网站上完成注册.
w3m使用了一种不同的,更小巧的Cookie文件格式:
bash$ cookie=$( grep nytimes ~/.w3m/cookie |awk {printf(”%s=%s;”,$2,$3)} )
现在就可以用这种方法来下载了:
bash$ wget –header=”Cookie: $cookie” http://www.nytimes.com/reuters/technology/tech-tech-supercomput.html
或者用curl工具:
bash$ curl -v -b $cookie -o supercomp.html http://www.nytimes.com/reuters/technology/tech-tech-supercomput.htm
G.如何建立地址列表?
到现在为止我们下载的都是单个文件或者是整个网站.有的时候我们需要下载某个网页上链接的大量文件,但没有必要把它整个网站都镜像下来.比如说我们想从一个依次排列的100首歌里面下载前20首.注意,这里”–accept”和”–reject”参数是不会起作用的, 因为他们只对文件操作起作用.所以一定要用”lynx -dump”参数来代替.
bash$ lynx -dump ftp://ftp.ssc.com/pub/lg/ |grep gz$ |tail -10 |awk {print $2} > urllist.txt
lynx的输出结果可以被各种GNU文本处理工具过虑.在上面的例子里,我们的链接地址是以”gz”结尾的,并且把最后10个文件地址放到urllist.txt文件里.然后我们可以写一个简单的bash脚本来自动下载这个文件里的目标文件:
bash$ for x in $(cat urllist.txt)
> do
> wget $x
> done
这样我们就能够成功下载Linux Gazette网站(ftp://ftp.ssc.com/pub/lg/)上的最新10个论题.
H.扩大使用的带宽
如果你选择下载一个受带宽限制的文件,那你的下载会因为服务器端的限制而变得很慢.下面这个技巧会大大缩短下载的过程.但这个技巧需要你使用curl并且远程服务器有多个镜像可以供你下载.例如,假设你想从下面的三个地址下载Mandrake 8.0:
url1=http://ftp.eecs.umich.edu/pub/linux/mandrake/iso/Mandrake80-inst.iso
url2=http://ftp.rpmfind.net/linux/Mandrake/iso/Mandrake80-inst.iso
url3=http://ftp.wayne.edu/linux/mandrake/iso/Mandrake80-inst.iso
这个文件的长度是677281792个字节,所以用curl程序加”–range”参数来建立三个同时进行的下载:
bash$ curl -r 0-199999999 -o mdk-iso.part1 $url1 &
bash$ curl -r 200000000-399999999 -o mdk-iso.part2 $url2 &
bash$ curl -r 400000000- -o mdk-iso.part3 $url3 &
这样就创建了三个后台进程.每个进程从不同的服务器传输这个ISO文件的不同部分.这个”-r”参数指定目标文件的字节范围.当这三个
进程结束后,用一个简单的cat命令来把这三个文件衔接起来– cat mdk-iso.part? > mdk-80.iso.(强烈建议在刻盘之前先检查md5)
你也可以用”–verbose”参数来使每个curl进程都有自己的窗口来显示传输的过程.
转载请注明linux系统运维:
http://www.linuxyw.com/a/wenjianchuanshu/20130510/294.html
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.gz tar zxvf linux-2.6.38.tar.gz cd linux-2.6.38
linux curl 命令详解,以及实例
linux curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具。
一,curl命令参数,有好多我没有用过,也不知道翻译的对不对,如果有误的地方,还请指正。
- -a/--append 上传文件时,附加到目标文件
- -A/--user-agent <string> 设置用户代理发送给服务器
- - anyauth 可以使用“任何”身份验证方法
- -b/--cookie <name=string/file> cookie字符串或文件读取位置
- - basic 使用HTTP基本验证
- -B/--use-ascii 使用ASCII /文本传输
- -c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
- -C/--continue-at <offset> 断点续转
- -d/--data <data> HTTP POST方式传送数据
- --data-ascii <data> 以ascii的方式post数据
- --data-binary <data> 以二进制的方式post数据
- --negotiate 使用HTTP身份验证
- --digest 使用数字身份验证
- --disable-eprt 禁止使用EPRT或LPRT
- --disable-epsv 禁止使用EPSV
- -D/--dump-header <file> 把header信息写入到该文件中
- --egd-file <file> 为随机数据(SSL)设置EGD socket路径
- --tcp-nodelay 使用TCP_NODELAY选项
- -e/--referer 来源网址
- -E/--cert <cert[:passwd]> 客户端证书文件和密码 (SSL)
- --cert-type <type> 证书文件类型 (DER/PEM/ENG) (SSL)
- --key <key> 私钥文件名 (SSL)
- --key-type <type> 私钥文件类型 (DER/PEM/ENG) (SSL)
- --pass <pass> 私钥密码 (SSL)
- --engine <eng> 加密引擎使用 (SSL). "--engine list" for list
- --cacert <file> CA证书 (SSL)
- --capath <directory> CA目录 (made using c_rehash) to verify peer against (SSL)
- --ciphers <list> SSL密码
- --compressed 要求返回是压缩的形势 (using deflate or gzip)
- --connect-timeout <seconds> 设置最大请求时间
- --create-dirs 建立本地目录的目录层次结构
- --crlf 上传是把LF转变成CRLF
- -f/--fail 连接失败时不显示http错误
- --ftp-create-dirs 如果远程目录不存在,创建远程目录
- --ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用
- --ftp-pasv 使用 PASV/EPSV 代替端口
- --ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址
- --ftp-ssl 尝试用 SSL/TLS 来进行ftp数据传输
- --ftp-ssl-reqd 要求用 SSL/TLS 来进行ftp数据传输
- -F/--form <name=content> 模拟http表单提交数据
- -form-string <name=string> 模拟http表单提交数据
- -g/--globoff 禁用网址序列和范围使用{}和[]
- -G/--get 以get的方式来发送数据
- -h/--help 帮助
- -H/--header <line>自定义头信息传递给服务器
- --ignore-content-length 忽略的HTTP头信息的长度
- -i/--include 输出时包括protocol头信息
- -I/--head 只显示文档信息
- 从文件中读取-j/--junk-session-cookies忽略会话Cookie
- - 界面<interface>指定网络接口/地址使用
- - krb4 <级别>启用与指定的安全级别krb4
- -j/--junk-session-cookies 读取文件进忽略session cookie
- --interface <interface> 使用指定网络接口/地址
- --krb4 <level> 使用指定安全级别的krb4
- -k/--insecure 允许不使用证书到SSL站点
- -K/--config 指定的配置文件读取
- -l/--list-only 列出ftp目录下的文件名称
- --limit-rate <rate> 设置传输速度
- --local-port<NUM> 强制使用本地端口号
- -m/--max-time <seconds> 设置最大传输时间
- --max-redirs <num> 设置最大读取的目录数
- --max-filesize <bytes> 设置最大下载的文件总量
- -M/--manual 显示全手动
- -n/--netrc 从netrc文件中读取用户名和密码
- --netrc-optional 使用 .netrc 或者 URL来覆盖-n
- --ntlm 使用 HTTP NTLM 身份验证
- -N/--no-buffer 禁用缓冲输出
- -o/--output 把输出写到该文件中
- -O/--remote-name 把输出写到该文件中,保留远程文件的文件名
- -p/--proxytunnel 使用HTTP代理
- --proxy-anyauth 选择任一代理身份验证方法
- --proxy-basic 在代理上使用基本身份验证
- --proxy-digest 在代理上使用数字身份验证
- --proxy-ntlm 在代理上使用ntlm身份验证
- -P/--ftp-port <address> 使用端口地址,而不是使用PASV
- -Q/--quote <cmd>文件传输前,发送命令到服务器
- -r/--range <range>检索来自HTTP/1.1或FTP服务器字节范围
- --range-file 读取(SSL)的随机文件
- -R/--remote-time 在本地生成文件时,保留远程文件时间
- --retry <num> 传输出现问题时,重试的次数
- --retry-delay <seconds> 传输出现问题时,设置重试间隔时间
- --retry-max-time <seconds> 传输出现问题时,设置最大重试时间
- -s/--silent静音模式。不输出任何东西
- -S/--show-error 显示错误
- --socks4 <host[:port]> 用socks4代理给定主机和端口
- --socks5 <host[:port]> 用socks5代理给定主机和端口
- --stderr <file>
- -t/--telnet-option <OPT=val> Telnet选项设置
- --trace <file> 对指定文件进行debug
- --trace-ascii <file> Like --跟踪但没有hex输出
- --trace-time 跟踪/详细输出时,添加时间戳
- -T/--upload-file <file> 上传文件
- --url <URL> Spet URL to work with
- -u/--user <user[:password]>设置服务器的用户和密码
- -U/--proxy-user <user[:password]>设置代理用户名和密码
- -v/--verbose
- -V/--version 显示版本信息
- -w/--write-out [format]什么输出完成后
- -x/--proxy <host[:port]>在给定的端口上使用HTTP代理
- -X/--request <command>指定什么命令
- -y/--speed-time 放弃限速所要的时间。默认为30
- -Y/--speed-limit 停止传输速度的限制,速度时间'秒
- -z/--time-cond 传送时间设置
- -0/--http1.0 使用HTTP 1.0
- -1/--tlsv1 使用TLSv1(SSL)
- -2/--sslv2 使用SSLv2的(SSL)
- -3/--sslv3 使用的SSLv3(SSL)
- --3p-quote like -Q for the source URL for 3rd party transfer
- --3p-url 使用url,进行第三方传送
- --3p-user 使用用户名和密码,进行第三方传送
- -4/--ipv4 使用IP4
- -6/--ipv6 使用IP6
- -#/--progress-bar 用进度条显示当前的传送状态
二,常用curl实例
1,抓取页面内容到一个文件中
- [root@krlcgcms01 mytest]# curl -o home.html http://blog.51yip.com
2,用-O(大写的),后面的url要具体到某个文件,不然抓不下来。我们还可以用正则来抓取东西
- [root@krlcgcms01 mytest]# curl -O http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg
- [root@krlcgcms01 mytest]# curl -O http://blog.51yip.com/wp-content/uploads/2010/[0-9][0-9]/aaaaa.jpg
3,模拟表单信息,模拟登录,保存cookie信息
- [root@krlcgcms01 mytest]# curl -c ./cookie_c.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php
4,模拟表单信息,模拟登录,保存头信息
- [root@krlcgcms01 mytest]# curl -D ./cookie_D.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php
-c(小写)产生的cookie和-D里面的cookie是不一样的。
5,使用cookie文件
- [root@krlcgcms01 mytest]# curl -b ./cookie_c.txt http://blog.51yip.com/wp-admin
6,断点续传,-C(大写的)
- [root@krlcgcms01 mytest]# curl -C -O http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg
7,传送数据,最好用登录页面测试,因为你传值过去后,curl回抓数据,你可以看到你传值有没有成功
- [root@krlcgcms01 mytest]# curl -d log=aaaa http://blog.51yip.com/wp-login.php
8,显示抓取错误,下面这个例子,很清楚的表明了。
- [root@krlcgcms01 mytest]# curl -f http://blog.51yip.com/asdf
- curl: (22) The requested URL returned error: 404
- [root@krlcgcms01 mytest]# curl http://blog.51yip.com/asdf
- <HTML><HEAD><TITLE>404,not found</TITLE>
- 。。。。。。。。。。。。
9,伪造来源地址,有的网站会判断,请求来源地址。
- [root@krlcgcms01 mytest]# curl -e http://localhost http://blog.51yip.com/wp-login.php
10,当我们经常用curl去搞人家东西的时候,人家会把你的IP给屏蔽掉的,这个时候,我们可以用代理
- [root@krlcgcms01 mytest]# curl -x 24.10.28.84:32779 -o home.html http://blog.51yip.com
11,比较大的东西,我们可以分段下载
- [root@krlcgcms01 mytest]# curl -r 0-100 -o img.part1 http://blog.51yip.com/wp-
- content/uploads/2010/09/compare_varnish.jpg
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
- 100 101 100 101 0 0 105 0 --:--:-- --:--:-- --:--:-- 0
- [root@krlcgcms01 mytest]# curl -r 100-200 -o img.part2 http://blog.51yip.com/wp-
- content/uploads/2010/09/compare_varnish.jpg
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
- 100 101 100 101 0 0 57 0 0:00:01 0:00:01 --:--:-- 0
- [root@krlcgcms01 mytest]# curl -r 200- -o img.part3 http://blog.51yip.com/wp-
- content/uploads/2010/09/compare_varnish.jpg
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
- 100 104k 100 104k 0 0 52793 0 0:00:02 0:00:02 --:--:-- 88961
- [root@krlcgcms01 mytest]# ls |grep part | xargs du -sh
- 4.0K one.part1
- 112K three.part3
- 4.0K two.part2
用的时候,把他们cat一下就OK了,cat img.part* >img.jpg
12,不会显示下载进度信息
- [root@krlcgcms01 mytest]# curl -s -o aaa.jpg http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg
13,显示下载进度条
- [root@krlcgcms01 mytest]# curl -# -O http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg
- ######################################################################## 100.0%
14,通过ftp下载文件
- [zhangy@BlackGhost ~]$ curl -u 用户名:密码 -O http://blog.51yip.com/demo/curtain/bbstudy_files/style.css
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
- 101 1934 101 1934 0 0 3184 0 --:--:-- --:--:-- --:--:-- 7136
- [zhangy@BlackGhost ~]$ curl -O ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/style.css
15,通过ftp上传
- [zhangy@BlackGhost ~]$ curl -T test.sql ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/
- centos上网
- Centos 上网
- centos上网
- CentOS无限上网
- centos代理上网
- vm centos 上网
- vmware设置centOS上网
- 虚拟机Centos上网
- centos上网设置
- Centos bridge 上网配置
- centOS中上网命令
- CentOS设置上网代理
- 刚装完CentOS后连不上网
- CentOS 6.5 虚拟机上网
- 解决centos不能上网
- Centos 下Drcom上网
- Centos代理上网设置
- 虚拟机centos上网问题解决
- 风热感冒的症状
- linux tar命令详解
- 2014.1.1
- Oracle中用sys用户登录
- 2014新的开始
- centos上网
- Android 注册广播有几种方式及优缺点
- MySQL GUI Tools 使用简介
- hadoop配置文件详解
- 英语是一种思想
- 治疗感冒的常用中成药
- 游戏服务器之lua脚本系统
- 收集的学习书籍及相关网站
- mapr-3.0下载源