centos上网

来源:互联网 发布:sql设置默认值为0 编辑:程序博客网 时间:2024/04/29 21:44

用linux命令浏览网页:用Wget命令来浏览网页

以下是在liux模式下用linux命令浏览网页的方法,可以用linux命令:lynx,links浏览web,linux命令:lftp,wget,curl等上传/下载软件。

以下是在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命令浏览网页的方法。

【编辑推荐】

  1. Ubuntu Linux系统中使用linux命令行模式修改时区
  2. 在Linux命令行界面使用代理服务器上网
  3. linux下图形模式与linux命令行模式切换方法






linux下使用文本浏览器lynx下载文件

IN: LINUX :-) HOT: 4,411 ℃

5九2011

在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

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”







linux命令:wget(使用方法详解)

时间:2013-05-10 10:04来源:转载 作者:网络 点击: 次
wget是linux上的命令行的下载工具,本文对wget各种参数,使用方法,做出详细解释和使用实例
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


一 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


cd /usr/src 
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 命令详解,以及实例

张映 发表于 2010-10-11

分类目录: linux

linux curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具。

一,curl命令参数,有好多我没有用过,也不知道翻译的对不对,如果有误的地方,还请指正。

查看复制打印?
  1. -a/--append 上传文件时,附加到目标文件  
  2.  -A/--user-agent <string>  设置用户代理发送给服务器  
  3.  - anyauth   可以使用“任何”身份验证方法  
  4.  -b/--cookie <name=string/file> cookie字符串或文件读取位置  
  5.  - basic 使用HTTP基本验证  
  6.  -B/--use-ascii 使用ASCII /文本传输  
  7.  -c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中  
  8.  -C/--continue-at <offset>  断点续转  
  9.  -d/--data <data>   HTTP POST方式传送数据  
  10.  --data-ascii <data>  以ascii的方式post数据  
  11.  --data-binary <data> 以二进制的方式post数据  
  12.  --negotiate     使用HTTP身份验证  
  13.  --digest        使用数字身份验证  
  14.  --disable-eprt  禁止使用EPRT或LPRT  
  15.  --disable-epsv  禁止使用EPSV  
  16.  -D/--dump-header <file> 把header信息写入到该文件中  
  17.  --egd-file <file> 为随机数据(SSL)设置EGD socket路径  
  18.  --tcp-nodelay   使用TCP_NODELAY选项  
  19.  -e/--referer 来源网址  
  20.  -E/--cert <cert[:passwd]> 客户端证书文件和密码 (SSL)  
  21.  --cert-type <type> 证书文件类型 (DER/PEM/ENG) (SSL)  
  22.  --key <key>     私钥文件名 (SSL)  
  23.  --key-type <type> 私钥文件类型 (DER/PEM/ENG) (SSL)  
  24.  --pass  <pass>  私钥密码 (SSL)  
  25.  --engine <eng>  加密引擎使用 (SSL). "--engine list" for list  
  26.  --cacert <file> CA证书 (SSL)  
  27.  --capath <directory> CA目录 (made using c_rehash) to verify peer against (SSL)  
  28.  --ciphers <list>  SSL密码  
  29.  --compressed    要求返回是压缩的形势 (using deflate or gzip)  
  30.  --connect-timeout <seconds> 设置最大请求时间  
  31.  --create-dirs   建立本地目录的目录层次结构  
  32.  --crlf          上传是把LF转变成CRLF  
  33.  -f/--fail          连接失败时不显示http错误  
  34.  --ftp-create-dirs 如果远程目录不存在,创建远程目录  
  35.  --ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用  
  36.  --ftp-pasv      使用 PASV/EPSV 代替端口  
  37.  --ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址  
  38.  --ftp-ssl       尝试用 SSL/TLS 来进行ftp数据传输  
  39.  --ftp-ssl-reqd  要求用 SSL/TLS 来进行ftp数据传输  
  40.  -F/--form <name=content> 模拟http表单提交数据  
  41.  -form-string <name=string> 模拟http表单提交数据  
  42.  -g/--globoff 禁用网址序列和范围使用{}和[]  
  43.  -G/--get 以get的方式来发送数据  
  44.  -h/--help 帮助  
  45.  -H/--header <line>自定义头信息传递给服务器  
  46.  --ignore-content-length  忽略的HTTP头信息的长度  
  47.  -i/--include 输出时包括protocol头信息  
  48.  -I/--head  只显示文档信息  
  49.  从文件中读取-j/--junk-session-cookies忽略会话Cookie  
  50.  - 界面<interface>指定网络接口/地址使用  
  51.  - krb4 <级别>启用与指定的安全级别krb4  
  52.  -j/--junk-session-cookies 读取文件进忽略session cookie  
  53.  --interface <interface> 使用指定网络接口/地址  
  54.  --krb4 <level>  使用指定安全级别的krb4  
  55.  -k/--insecure 允许不使用证书到SSL站点  
  56.  -K/--config  指定的配置文件读取  
  57.  -l/--list-only 列出ftp目录下的文件名称  
  58.  --limit-rate <rate> 设置传输速度  
  59.  --local-port<NUM> 强制使用本地端口号  
  60.  -m/--max-time <seconds> 设置最大传输时间  
  61.  --max-redirs <num> 设置最大读取的目录数  
  62.  --max-filesize <bytes> 设置最大下载的文件总量  
  63.  -M/--manual  显示全手动  
  64.  -n/--netrc 从netrc文件中读取用户名和密码  
  65.  --netrc-optional 使用 .netrc 或者 URL来覆盖-n  
  66.  --ntlm          使用 HTTP NTLM 身份验证  
  67.  -N/--no-buffer 禁用缓冲输出  
  68.  -o/--output 把输出写到该文件中  
  69.  -O/--remote-name 把输出写到该文件中,保留远程文件的文件名  
  70.  -p/--proxytunnel   使用HTTP代理  
  71.  --proxy-anyauth 选择任一代理身份验证方法  
  72.  --proxy-basic   在代理上使用基本身份验证  
  73.  --proxy-digest  在代理上使用数字身份验证  
  74.  --proxy-ntlm    在代理上使用ntlm身份验证  
  75.  -P/--ftp-port <address> 使用端口地址,而不是使用PASV  
  76.  -Q/--quote <cmd>文件传输前,发送命令到服务器  
  77.  -r/--range <range>检索来自HTTP/1.1或FTP服务器字节范围  
  78.  --range-file 读取(SSL)的随机文件  
  79.  -R/--remote-time   在本地生成文件时,保留远程文件时间  
  80.  --retry <num>   传输出现问题时,重试的次数  
  81.  --retry-delay <seconds>  传输出现问题时,设置重试间隔时间  
  82.  --retry-max-time <seconds> 传输出现问题时,设置最大重试时间  
  83.  -s/--silent静音模式。不输出任何东西  
  84.  -S/--show-error   显示错误  
  85.  --socks4 <host[:port]> 用socks4代理给定主机和端口  
  86.  --socks5 <host[:port]> 用socks5代理给定主机和端口  
  87.  --stderr <file>  
  88.  -t/--telnet-option <OPT=val> Telnet选项设置  
  89.  --trace <file>  对指定文件进行debug  
  90.  --trace-ascii <file> Like --跟踪但没有hex输出  
  91.  --trace-time    跟踪/详细输出时,添加时间戳  
  92.  -T/--upload-file <file> 上传文件  
  93.  --url <URL>     Spet URL to work with  
  94.  -u/--user <user[:password]>设置服务器的用户和密码  
  95.  -U/--proxy-user <user[:password]>设置代理用户名和密码  
  96.  -v/--verbose  
  97.  -V/--version 显示版本信息  
  98.  -w/--write-out [format]什么输出完成后  
  99.  -x/--proxy <host[:port]>在给定的端口上使用HTTP代理  
  100.  -X/--request <command>指定什么命令  
  101.  -y/--speed-time 放弃限速所要的时间。默认为30  
  102.  -Y/--speed-limit 停止传输速度的限制,速度时间'秒  
  103.  -z/--time-cond  传送时间设置  
  104.  -0/--http1.0  使用HTTP 1.0  
  105.  -1/--tlsv1  使用TLSv1(SSL)  
  106.  -2/--sslv2 使用SSLv2的(SSL)  
  107.  -3/--sslv3         使用的SSLv3(SSL)  
  108.  --3p-quote      like -Q for the source URL for 3rd party transfer  
  109.  --3p-url        使用url,进行第三方传送  
  110.  --3p-user       使用用户名和密码,进行第三方传送  
  111.  -4/--ipv4   使用IP4  
  112.  -6/--ipv6   使用IP6  
  113.  -#/--progress-bar 用进度条显示当前的传送状态  

二,常用curl实例

1,抓取页面内容到一个文件中

查看复制打印?
  1. [root@krlcgcms01 mytest]# curl -o home.html  http://blog.51yip.com  

2,用-O(大写的),后面的url要具体到某个文件,不然抓不下来。我们还可以用正则来抓取东西

查看复制打印?
  1. [root@krlcgcms01 mytest]# curl -O http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg  
  2. [root@krlcgcms01 mytest]# curl -O http://blog.51yip.com/wp-content/uploads/2010/[0-9][0-9]/aaaaa.jpg  

3,模拟表单信息,模拟登录,保存cookie信息

查看复制打印?
  1. [root@krlcgcms01 mytest]# curl -c ./cookie_c.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php  

4,模拟表单信息,模拟登录,保存头信息

查看复制打印?
  1. [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文件

查看复制打印?
  1. [root@krlcgcms01 mytest]# curl -b ./cookie_c.txt  http://blog.51yip.com/wp-admin  

6,断点续传,-C(大写的)

查看复制打印?
  1. [root@krlcgcms01 mytest]# curl -C -O http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg  

7,传送数据,最好用登录页面测试,因为你传值过去后,curl回抓数据,你可以看到你传值有没有成功

查看复制打印?
  1. [root@krlcgcms01 mytest]# curl -d log=aaaa  http://blog.51yip.com/wp-login.php  

8,显示抓取错误,下面这个例子,很清楚的表明了。

查看复制打印?
  1. [root@krlcgcms01 mytest]# curl -f http://blog.51yip.com/asdf  
  2. curl: (22) The requested URL returned error: 404  
  3. [root@krlcgcms01 mytest]# curl http://blog.51yip.com/asdf  
  4.   
  5. <HTML><HEAD><TITLE>404,not found</TITLE>  
  6. 。。。。。。。。。。。。  

9,伪造来源地址,有的网站会判断,请求来源地址。

查看复制打印?
  1. [root@krlcgcms01 mytest]# curl -e http://localhost http://blog.51yip.com/wp-login.php  

10,当我们经常用curl去搞人家东西的时候,人家会把你的IP给屏蔽掉的,这个时候,我们可以用代理

查看复制打印?
  1. [root@krlcgcms01 mytest]# curl -x 24.10.28.84:32779 -o home.html http://blog.51yip.com  

11,比较大的东西,我们可以分段下载

查看复制打印?
  1. [root@krlcgcms01 mytest]# curl -r 0-100 -o img.part1 http://blog.51yip.com/wp-  
  2.   
  3. content/uploads/2010/09/compare_varnish.jpg  
  4.  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
  5.  Dload  Upload   Total   Spent    Left  Speed  
  6. 100   101  100   101    0     0    105      0 --:--:-- --:--:-- --:--:--     0  
  7. [root@krlcgcms01 mytest]# curl -r 100-200 -o img.part2 http://blog.51yip.com/wp-  
  8.   
  9. content/uploads/2010/09/compare_varnish.jpg  
  10.  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
  11.  Dload  Upload   Total   Spent    Left  Speed  
  12. 100   101  100   101    0     0     57      0  0:00:01  0:00:01 --:--:--     0  
  13. [root@krlcgcms01 mytest]# curl -r 200- -o img.part3 http://blog.51yip.com/wp-  
  14.   
  15. content/uploads/2010/09/compare_varnish.jpg  
  16.  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
  17.  Dload  Upload   Total   Spent    Left  Speed  
  18. 100  104k  100  104k    0     0  52793      0  0:00:02  0:00:02 --:--:-- 88961  
  19. [root@krlcgcms01 mytest]# ls |grep part | xargs du -sh  
  20. 4.0K    one.part1  
  21. 112K    three.part3  
  22. 4.0K    two.part2  

用的时候,把他们cat一下就OK了,cat img.part* >img.jpg

12,不会显示下载进度信息

查看复制打印?
  1. [root@krlcgcms01 mytest]# curl -s -o aaa.jpg  http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg  

13,显示下载进度条

查看复制打印?
  1. [root@krlcgcms01 mytest]# curl -# -O  http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg  
  2. ######################################################################## 100.0%  

14,通过ftp下载文件

查看复制打印?
  1. [zhangy@BlackGhost ~]$ curl -u 用户名:密码 -O http://blog.51yip.com/demo/curtain/bbstudy_files/style.css  
  2.  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
  3.  Dload  Upload   Total   Spent    Left  Speed  
  4. 101  1934  101  1934    0     0   3184      0 --:--:-- --:--:-- --:--:--  7136  
或者用下面的方式
查看复制打印?
  1. [zhangy@BlackGhost ~]$ curl -O ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/style.css  

15,通过ftp上传

查看复制打印?
  1. [zhangy@BlackGhost ~]$ curl -T test.sql ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/  





0 0
原创粉丝点击