当前位置:文档之家› CURL的使用

CURL的使用

CURL的使用
CURL的使用

curl应用总结(一)

最近开发中用到curl库,虽然都是很简单的应用,但对这个库还是产生了兴趣,想学习总结一下。curl库功能非常强大,这里主要针对http应用,尤其是http文件下载做一个总结。当然了,还是主要针对Windows系统来讲。

本文是第一篇,当然要简单介绍一下curl,然后说一下Windows系统下的编译安装,以及对curl工具的简单应用。

curl是一个基于命令行的应用工具,提供利用URL标准进行文件传输的功能。目前已经支持非常多的流行的互联网协议,如:FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE等。curl支持SSL认证,HTTP POST/PUT,FTP上传,HTTP 上传、代理、cookies、用户+密码认证、文件续传、代理管道等一系列强大功能。curl是用C语言写的,但是绑定了很多开发语言。大体上可以把curl分成命令行工具和libcurl库两个部分,命令行工具可以直接输入指令完成相应功能,libcurl则是一个客户端URL传输库,是线程安全且兼容IPv6,可以非常方便地用来做相关开发。

更多关于curl的信息可以参考官网http://curl.haxx.se/。curl的相关文档非常全,不得不赞一下。其实查阅原文文档是一个很好的习惯,而且还是一件很惬意的事情,对提高英文阅读能力帮助也很大。

从curl官方网站上可以直接下载到编译好的lib,dll和exe文件,但是自己由源码编译安装curl,也是一件有意思的事情。从网站上下载源码包,解压缩后会看到根文件目录下面有很多文件及文件夹。其中的文件是有关curl项目的介绍、版本变更情况、以及一些有关配置和编译的文件;文件夹中比较重要的有3个:docs、lib和src,docs中包括项目的所有相关文档,lib中为libcurl库的源码,src为curl命令行工具的源码。

如果你熟悉MSVS开发环境的话,那么编译过程再简单不过了,因为最新的curl源码包中已经自带了vc6的工程文件,只要高于6.0版本的环境都可以直接打开工程进行编译链接,生成二进制文件。整个solution中包含两个project,一个是libcurl库,一个是curl的命令行工具。其中,curl.exe运行是要加载libcurl.dll动态库的。另外,自带的工程设置中没有用到OpenSSL或Zlib这些第三方库,如果需要用到相关扩展功能的话,需要配置引用这些库文件进行编译。

还有一种方式是通过MSVS命令行的方式进行编译。步骤如下:

1、首先要清楚自己安装的是msvc哪个版本,目前常见的vc6,vc2003(vc7),vc2005(vc8)和vc2008(vc9),curl源码包中都已经写好了相应的makefile文件,我机器上装的是vc2005;

2、将vc的安装目录的bin文件目录加到PATH环境变量中,我机器上bin的路径为

C:\Program Files\Microsoft Visual Studio 8\VC\bin,这一步主要是为了使我们能够在任何路径下运行bin路径下的工具,如后面要用到的编译工具cl.exe和make工具nmake.exe;

3、在运行中启动cmd.exe,在其中运行bin目录下的vcvars32.bat这个批处理文件,这个文件中定义了很多vc库文件及相关资源工具的访问变量,指明了响应资源的访问路径,跟环境变量的作用相似,但是只作用于当前命令行窗口;

4、在cmd中进入到你要编译的curl源码的根文件目录下,输入命令“nmake vc”回车,应该就会看到一长串的编译信息输出。结束后,在lib子目录下会生成release文件夹,里面即为编译后生成的目标文件以及静态链接库文件libcurl.lib,在src子目录下生成curl.exe可执行文件。这一步中需要注意的是根文件目录下的makefile文件中将vc编译工具定义为了vc6,我们应该把其中的“VC=vc6”这句改为自己机器上对应的vc版本。

另外,“nmake vc”命令也是没有引用任何第三方库来进行编译的,默认编译静态链接的release版本文件。如果要编译其他版本或者引用第三方库来进行编译,则要添加make参数,具体可以参考makefile文件中的配置。

以上主要介绍的是在Windows平台下用msvc工具编译curl代码,其实curl库几乎可以支持所有常见的操作系统,而且支持的编译工具也很多,如MingW32、Cygwin、Borland C++等。curl的文档中写得都非常清楚,这里就不详细说了。

以上简单介绍了curl库和在Windows平台下用msvc环境编译curl执行文件的步骤,下一篇中将总结一些应用curl库的知识。

curl应用总结(二)

(2009-07-06 19:40:01)

curl的应用方式,一是可以直接通过命令行工具,另一种是利用libcurl库做上层的开发。本篇主要总结一下命令行工具的http相关的应用,尤其是http下载方面的;下一篇再讲基于libcurl库的开发。

curl的命令行工具功能非常强大,这些数据交互的功能基本上都是通过URL方式进行的,我们先来看看curl对多个URL的灵活操作,这些规则使我们的批处理需求应用起来非常方便。

1、用{}表示多个URL

如http://site.{one,two,three}.com,只要在{}中写上不同的部分,就可以表示3个URL了。

2、用[]表示多个URL

如ftp://https://www.doczj.com/doc/034152322.html,/file[1-100].txt,ftp://https://www.doczj.com/doc/034152322.html,/file[001-100].txt,ftp://https://www.doczj.com/doc/034152322.html,/file[a-z].txt,[]中表示按数字或字母的顺序排列。

还能表示不连续的排列,如https://www.doczj.com/doc/034152322.html,/file[1-100:10].txt,https://www.doczj.com/doc/034152322.html,/file[a-z:2].txt,":"后面的数字表示等差排列的阶跃数。

3、结合起来使用

如https://www.doczj.com/doc/034152322.html,/archive[1996-1999]/vol[1-4]/part{a,b,c}.html。

curl命令行工具的基本语句为:curl [options] [URL...],即curl [选项] [下载地址]。因此,如果你想下载百度的首页,最简单的方法启动cmd,进入curl安装目录,输入命令:curl https://www.doczj.com/doc/034152322.html,,回车,你的输出窗口将立即出现百度首页的html数据。

对于所有的布尔型option,基本上--option表示支持这个选项,--no-option表示禁用这个选项。下面总结几个比较有用的options。

1、-o/--output

这个基本上要算最常用的选项了,用于将下载的数据保存到某个文件中。如curl -o baidu.html https://www.doczj.com/doc/034152322.html,则将百度首页保存到baidu.html文件中了。下载过程中标准输出还会显示下载的统计信息,比如进度、下载字节数、下载速度等。如果指定输出为"-",则下载数据会输出到标准输出。

如果输出的文件是一个多级目录的话,则要配合--create-dirs选项,--create-dirs将自动创建设置的输出目录。

如果希望保存到本地的文件名和服务器上的相同,就可以直接用-O选项(大写O),而省去指定本地文件名。

如果下载多个数据文件,可以使用上面提到的多URL规则。下载文件名也可以批量自定义,就是使用"#"。可以将"#"加到文件名当中,这样实际文件名中的#将被多个URL中的当前字符串代替,如curl http://{site,host}.host[1-5].com -o "#1_#2",#1将被"site"或"host"代替,#2将被1-5之间的数字代替,也就是被当前被处理的URL中的字符串代替。

另外下载数据的时候,可以加个"-#"选项,用一个进度条来代替文本表示进度。

2、-c/--cookie-jar 和-b/--cookie

这是两个操作cookie的选项,很多服务器是需要cookie信息的。用前一个选项可以指定一个文件,将其他文件中的cookie或者从服务器得到的cookie写到文件中;后一个选项则用来向服务器发送cookie信息,可以用"name=data"的形式,也可以直接跟一个保存cookie 的文件名。

3、-x/--proxy

该选项为http指定代理及端口,如果不指定端口,默认为1080。如curl -x 201.36.208.19:3128 http://curl.haxx.se/。

4、-u/--user 和-U/--proxy-user

登录某些页面或ftp需要先进行认证,输入用户名和密码。curl的这个选项可以直接处理这类操作,用指定的账号和密码进行登录认证。

后面的选项指定代理的用户名和密码,这样便可以直接用这个代理访问网页了,如curl

-U user:password -x 201.36.208.19:3128 http://curl.haxx.se/。

5、-A/--user-agent

该选项可以指定客户端类型,服务器通过该选项判断用户应用的平台及浏览器信息。如curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" https://www.doczj.com/doc/034152322.html,,

表示告诉服务器,客户端是运行在Windows 2000系统上的IE6.0。

6、-d/--data

该选项用来以POST方式向http服务器发送特定数据,最常用的就是提交表单。如curl -d "user=username&password=111" https://www.doczj.com/doc/034152322.html,,表示用账号username和密码111向站点发送登录申请。其中多个数据段可以用"&"进行连接一起发送;如果数据前面加上符号"@",则数据来源为后面指定的文件,如curl -d password=@D:\pw.txt https://www.doczj.com/doc/034152322.html,。

7、-C/--continue-at

改选项提供断点续传功能,与-o选项配合使用。如curl -c -O https://www.doczj.com/doc/034152322.html,/music/public/vd05/200905/31/a8/MUfs052009053117155750a8be70.m p3。如果指定offset,则从offset的位置开始续传。如果未指定offset,或者直接用"-C -",则curl会自己分析该从什么位置开始续传。

8、-r/--range

该选项指定下载字节的范围,常应用于分块下载文件。range的表示方式有多种,如100-500,则指定从100开始的400个字节数据;-500表示最后的500个字节;5000-表示从第5000个字节开始的所有字节;另外还可以同时指定多个字节块,中间用","分开。如curl -r 0-1024000 -o new_divide_1.mp3 https://www.doczj.com/doc/034152322.html,/music/public/vd05/200905/31/a8/MUfs052009053117155750a8be70.m p3 &

curl -r 1024001-2048000 -o new_divide_2.mp3 https://www.doczj.com/doc/034152322.html,/music/public/vd05/200905/31/a8/MUfs052009053117155750a8be70.m p3 &

curl -r 2048001- -o new_divide_3.mp3 https://www.doczj.com/doc/034152322.html,/music/public/vd05/200905/31/a8/MUfs052009053117155750a8be70.m p3

这样就会将目标mp3文件分块下载为3个文件,然后可以用dos的copy命令:copy new_divide_1.mp3/b + new_divide_2.mp3/b + new_divide_3.mp3/b new_divide.mp3即可将3个分块文件合并为一个完整的mp3文件。

9、-w/--write-out

该选项格式化输出一些用户操作的数据信息,用到的格式化输出符除了"\n","\r","\t"这些常见转义符外,还包括"@"和"%"。其中"@filename"表示输出filename文件中的数据,"@-"表示输出用户写入标准输入的数据;"%"标识符后面跟上定义的关键字,则可以输出对应的curl数据,常用的关键字有:

http_code ——上次操作返回的响应码;

time_total ——上次操作耗时,单位为秒;

time_connect —— TCP连接远程主机的耗时,单位为秒;

time_pretransfer ——文件真正开始传输之前交互耗时,单位为秒,可能主要包括一些命令处理和协议分析的耗时;

time_starttransfer ——文件的第一个字节开始传输之前的耗时,单位为秒,包括time_pretransfer和服务器计算结果的时间;

size_download ——下载的总字节数;

size_upload ——上传的总字节数;

size_request ——发送http请求的总字节数;

speed_download —— curl成功下载的平均下载速度;

speed_upload —— curl成功上传的平均上传速度;

举例:curl -o page.html -s -w %{time_connect}:%{time_starttransfer}:%{time_total} http://curl.haxx.se/,其中-s表示安静模式,即略去所有状态信息。

10、--connect-timeout 和-m/--max-time

前者表示允许的连接的最长耗时,单位为秒;后者表示允许的整个操作的最长耗时,单位为秒,这个选项对于控制一个批处理操作的时长非常有用。

11、--limit-rate 、-Y/--speed-limit 和-y/--speed-time

--limit-rate 指定最大的数据传输率,单位为bytes/s,也可以用'k'或'K'表示kb/s,'m'或'M'表示mb/s,'g'或'G'表示gb/s,所给的speed为平均传输率,短时间峰值可能会超过此值;

-Y/--speed-limit 指定最小传输率,单位为bytes/s,如果小于speed值,则传输中止,如此时-y选项没有被设置,默认time为30;-y/--speed-time

12、--max-filesize

该选项指定所要下载的文件的最大长度,如果超过bytes值,则下载并不开始,curl返回退出码63。

13、--retry 、--retry-delay 和--retry-max-time

当传输过程中出现错误,如超时、FTP 5xx返回码或者HTTP 5xx返回码,curl会进行按照设置进行重试,这几个选项都与重试有关。--retry 设置重试次数,--retry-delay 设置两次重试的间隔时间,--retry-max-time 设置两次重试间隔的最长时间。默认情况下,curl不进行重试;如果重试,第一次间隔1秒,之后每次都间隔上一次的2倍时间,直到间隔时间达到10分钟,之后的重试都将采用10分钟间隔。如果这3个选项的值被重新设置,则执行设置值。

14、-T/--upload-file

该选项是上传命令,如向http服务器上传一个文件:curl -T D:\new_divide.mp3 https://www.doczj.com/doc/034152322.html,/path/;向一个ftp服务器上传文件:curl -T D:\new_divide.mp3 -u user:password ftp://upload_site:port/path/。

curl定义了一组"EXIT CODES",用来标识在出现错误时的相关信息,目前范围从1-83,具体信息可以查阅curl库自带的文档。这些退出码对于我们分析错误及原因有很大帮助。

以上简单介绍了一下利用curl命令行工具进行一些简单的http和ftp应用,大家可以试着多用一下,会慢慢发现curl的强大功能,有很多独特的功能用起来非常简单方便。

curl应用总结(三)

(2009-07-12 01:40:01)

这篇讲一下基于libcurl库的开发(Windows平台,MSVC2005开发环境)。

libcurl是一个简单易用的基于URL传输的客户端开发库,支持多种平台以及三十多种开发语言绑定。libcurl是线程安全的,兼容IPv6,功能强大且运行效率高,很多知名公司如Google、Adobe的产品都应用过libcurl。

在05环境中做libcurl开发,需要将静态库文件加到编译链接环境中,并且要dll动态运行库支持。

libcurl提供了一组C语言API函数直接调用。首先需要提到的两个函数就是curl_global_init()和curl_global_cleanup()。libcurl要用到一系列的全局常量,curl_global_init()函数就是初始化这些变量,并分配一些全局资源;curl_global_cleanup()则负责释放这些资源。因此一般情况下,在调用libcurl函数之前,先用curl_global_init(CURL_GLOBAL_ALL)做初始化,在调用完毕后,用curl_global_cleanup()

退出。需要注意的是,这些全局变量和资源并不是线程安全的,因此,在多线程应用的环境中,最好不要多次调用curl_global_init()和curl_global_cleanup(),调用其他函数并不会改变这些全局变量和资源。

libcurl支持3种不同的接口调用方式,分别是"easy"、"multi"和"share"模式。libcurl-easy 是一组同步接口,函数都是curl_easy_*形式,这种模式调用curl_easy_perform()函数进行URL 数据传输,直到传输完成函数才返回;libcurl-multi是一组异步接口,函数都是curl_multi_*形式,调用curl_multi_perform()函数进行传输,但是每次调用只传一片数据,我们可以用select()函数控制多个下载任务进行同步下载,来实现在一个线程中同时下载多个文件;libcurl-share允许在多线程中操作共享数据。下面以libcurl-easy为例讲一下libcurl的函数。

1、CURL *curl_easy_init()

此函数需要最先被调用,返回CRUL easy句柄;后续其他函数调用都要用到这个句柄。如果没有调用curl_global_init(),该函数自动调用,但是考虑到线程安全的问题,最好自己调用curl_global_init()。

2、CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter)

所有参数和选项设置都是通过这个函数完成的,它告诉libcurl怎样去进行传输。参数handle即为curl_easy_init()返回的句柄,后面根据option的类型,设置相应的parameter值,该函数每次调用只能设置一个选项。具体的option讲解在这篇博文中有较全面的介绍:https://www.doczj.com/doc/034152322.html,/s/blog_4f9fc6e10100einf.html(p12)

这里只总结一下与下载有关的常用选项设置。

CURLOPT_URL

字符串类型,该选项设置要处理的URL地址,该选项是进行curl_easy_perform之前唯一必须要设置的选项。

CURLOPT_COOKIE

字符串类型,设置http头中的cookie信息。

CURLOPT_COOKIEFILE

字符串类型,同CURLOPT_COOKIE,不过cookie信息从文件中读取。

CURLOPT_FOLLOWLOCATION

布尔值类型,该参数设置为非零值表示follow服务器返回的重定向信息。

CURLOPT_POSTFIELDS

字符串类型,提交http的post操作字符串数据。

CURLOPT_TIMEOUT

long数值类型,设置函数执行的最长时间,时间单位为s。

CURLOPT_CONNECTTIMEOUT

long数值类型,设置连接服务器最长时间,时间单位为s;当置为0时表示无限长。

CURLOPT_MAX_RECV_SPEED_LARGE

curl_off_t类型数据,指定下载过程中最大速度,单位bytes/s。

CURLOPT_HEADERFUNCTION

函数指针类型,该选项设置一个处理接收到的header数据的回调函数,函数原型为:size_t function( void *ptr, size_t size, size_t nmemb, void *stream);

其中,ptr指向接收到的header头数据,数据大小为size*nmemb,stream指向调用CURLOPT_WRITEHEADER选项设置的参数。该回调函数应返回实际处理的数据量大小,或者出错返回-1。

CURLOPT_WRITEFUNCTION

函数指针类型,该选项设置一个处理接收到的下载数据的回调函数,函数原型为:size_t function( void *ptr, size_t size, size_t nmemb, void *stream);

其中,ptr指向接收到的数据,数据大小为size*nmemb,stream指向调用CURLOPT_WRITEDATA选项设置的参数。

如果函数指针置为NULL,则会调用默认的函数,将数据写入到由CURLOPT_WRITEDATA指定的FILE*中。

CURLOPT_HTTPHEADER

curl_slist结构体类型,该选项自定义请求头信息。

CURLOPT_NOPROGRESS

布尔值类型,设置该值为非零值关闭PHP为CRUL传输显示的进度条。

3、void curl_easy_reset(CURL *handle )

重新初始化CURL句柄的选项设置。

4、CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... )

查询CRUL会话的内部信息,具体说明请参考curl自带文档。

5、void curl_easy_cleanup(CURL * handle )

该函数与curl_easy_init函数成对出现,handle即为调用curl_easy_init返回的句柄。该函数在CURL会话结束退出时调用,之后handle无效。

libcurl库开发就简单总结这些,只是一个很粗略的介绍,具体的细节请参考curl自带的文档手册。本文没有给出示例代码,因为curl的源码包中已经自带了很多例子,大家可以仔细研究一下。

curl这个系列就总结到这里,希望对大家了解curl库有帮助,其中有错误的地方,请大家指出,谢谢!

curl函数库介绍

(2009-04-07 14:31:53)

转载

分类:php类

标签:

杂谈

$cookie_jar = tempnam('./tmp','cookie.txt');

$ch = curl_init();

$options = array(CURLOPT_URL => "https://www.doczj.com/doc/034152322.html,/welcome/login", CURLOPT_HEADER => 1,

CURLOPT_NOBODY => 0,

CURLOPT_PORT => 80,

CURLOPT_POST => 1,

CURLOPT_POSTFIELDS => "username=test&&pwd=test",

CURLOPT_RETURNTRANSFER => 1,

CURLOPT_FOLLOWLOCATION => 1,

CURLOPT_COOKIEJAR => $cookie_jar,

CURLOPT_COOKIEFILE => $cookie_jar,

CURLOPT_REFERER => "https://www.doczj.com/doc/034152322.html,/user/search/index"

);

curl_setopt_array($ch, $options);

$temp = curl_exec($ch);

curl_close($ch);

echo $temp;

?>

函数列表CURL库一共有17个函数:

curl_close:关闭CURL会话

curl_copy_handle:复制一个CURL会话句柄,同时3复制其所有参数curl_errno:返回最后一个错误码

curl_error:返回一个字符串,用以描述当前会话的最后一个错误

curl_exec:执行当前会话

curl_getinfo:获取特定信息

curl_init:初始化CURL会话

curl_multi_add_handle:在一个多连接会话中添加一个句柄

curl_multi_close:关闭一个多句柄CRUL会话

curl_multi_exec:执行一个多句柄CURL会话

curl_multi_getcontent:返回一个句柄执行后的内容,如果设置了CURLOPT_RETURNTRANSFER

curl_multi_info_read:获取当前所有连接的信息

curl_multi_init:初始化一个多句柄会话

curl_multi_remove_handle:从一个多句柄会话中删除一个句柄

curl_multi_select:获取所有绑定的套接字

curl_setopt:设置CURL传输选项

curl_version:获取CURL版本

常用设置选项布尔值选项

CURLOPT_AUTOREFERER:当返回的信息头含有转向信息时,自动设置前向连接CURLOPT_BINARYTRANSFER:TRUEtoreturntherawoutputwhenCURLOPT_RETURNTRANSFERisused.

CURLOPT_COOKIESESSION:标志为新的cookie会话,忽略之前设置的cookie会话CURLOPT_CRLF:将Unix系统的换行符转换为Dos换行符

CURLOPT_DNS_USE_GLOBAL_CACHE:使用全局的DNS缓存

CURLOPT_FAILONERROR:忽略返回错误

CURLOPT_FILETIME:获取请求文档的修改日期,该日期可以用curl_getinfo()获取。CURLOPT_FOLLOWLOCATION:紧随服务器返回的所有重定向信息

CURLOPT_FORBID_REUSE:当进程处理完毕后强制关闭会话,不再缓存供重用CURLOPT_FRESH_CONNECT:强制建立一个新的会话,而不是重用缓存的会话CURLOPT_HEADER:在返回的输出中包含响应头信息

CURLOPT_HTTPGET:设置HTTP请求方式为GET

CURLOPT_HTTPPROXYTUNNEL:经由一个HTTP代理建立连接

CURLOPT_NOBODY:返回的输出中不包含文档信息.

CURLOPT_NOPROGRESS:禁止进程级别传输,PHP自动设为真

CURLOPT_NOSIGNAL:忽略所有发往PHP的信息

CURLOPT_POST:设置POST方式提交数据,POST格式为application/x-www-form-urlencoded

CURLOPT_PUTTRUE:设置PUT方式上传文件,同时设置CURLOPT_INFILE和CURLOPT_INFILESIZE

CURLOPT_RETURNTRANSFER:返回字符串,而不是调用curl_exec()后直接输出CURLOPT_SSL_VERIFYPEER:SSL验证开启

CURLOPT_UNRESTRICTED_AUTH:一直链接后面附加用户名和密码,同时设置CURLOPT_FOLLOWLOCATION

CURLOPT_UPLOAD:准备上传

整数值选项

CURLOPT_BUFFERSIZE:缓存大小

CURLOPT_CONNECTTIMEOUT:连接时间设置,默认0为无限制

CURLOPT_DNS_CACHE_TIMEOUT:内存中保存DNS信息的时间,默认2分钟CURLOPT_INFILESIZE:上传至远程站点的文件尺寸

CURLOPT_LOW_SPEED_LIMIT:传输最低速度限制andabort.

CURLOPT_LOW_SPEED_TIME:传输时间限制

CURLOPT_MAXCONNECTS:最大持久连接数

CURLOPT_MAXREDIRS:最大转向数

CURLOPT_PORT:连接端口

CURLOPT_PROXYAUTH:代理服务器验证方式

CURLOPT_PROXYPORT:代理服务器端口

CURLOPT_PROXYTYPE:代理服务器类型

CURLOPT_TIMEOUT:CURL函数的最大执行时间

字符串选项

CURLOPT_COOKIE:HTTP头中set-cookie中的cookie信息

CURLOPT_COOKIEFILE:包含cookie信息的文件,cookie文件的格式可以是Netscape格式,或者只是HTTP头的格式

CURLOPT_COOKIEJAR:连接结束后保存cookie信息的文件

CURLOPT_CUSTOMREQUEST:自定义请求头,使用相对地址

CURLOPT_ENCODING:HTTP请求头中Accept-Encoding的值

CURLOPT_POSTFIELDS:POST格式提交的数据内容

CURLOPT_PROXY:代理通道

CURLOPT_PROXYUSERPWD:代理认证用户名和密码

CURLOPT_RANGE:返回数据的范围,以字节记

CURLOPT_REFERER:前向链接

CURLOPT_URL:要连接的URL地址,可以在curl_init()中设置

CURLOPT_USERAGENT:HTTP头中User-Agent的值

CURLOPT_USERPWD:连接种使用的验证信息

数组选项

CURLOPT_HTTP200ALIASES:200响应码数组,数组中的响应吗被认为是正确的响应CURLOPT_HTTPHEADER:自定义请求头信息

只能是流句柄的选项:

CURLOPT_FILE:传输要写入的晚间句柄,默认是标准输出

CURLOPT_INFILE:传输要读取的文件句柄

CURLOPT_STDERR:作为标准错误输出的一个替换选项

CURLOPT_WRITEHEADER:传输头信息要写入的文件

回调函数选项

CURLOPT_HEADERFUNCTION:拥有两个参数的回调函数,第一个是参数是会话句柄,第二是HTTP响应头信息的字符串。使用此回调函数,将自行处理响应头信息。响应头信息按行返回。设置返回值为字符串长度。

CURLOPT_READFUNCTION:拥有两个参数的回调函数,第一个是参数是会话句柄,第二是HTTP响应头信息的字符串。使用此函数,将自行处理返回的数据。返回值为数据尺寸。CURLOPT_WRITEFUNCTION:拥有两个参数的回调函数,第一个是参数是会话句柄,第二是HTTP响应头信息的字符串。使用此回调函数,将自行处理响应头信息。响应头信息是整个字符串。设置返回值为字符串长度。

Curl的说明

curl 求助编辑百科名片 curl 图标 1. curl是利用URL语法在命令行方式下工作的文件传输工具。 1. 编辑本段概念 它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及LDAP。 curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传, 上载文件断点续传, http代理服务器管道(proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。 Windows操作系统下的网络蚂蚁,网际快车(FlashGet)的功能它都可以做到。准确的说,curl支持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称curl为下载工具。 curl是瑞典curl组织开发的,您可以访问: http://curl.haxx. se/ 获取它的源代码和相关说明。 鉴于curl在Linux上的广泛使用,IBM在AIX Linux Toolbox的光盘中包含了这个软件,并且您可以访问IBM网站: http://www- 1.ibm. com/servers/aix/products/aixos/linux/altlic.html 下载它。 curl的最新版本是7.18.0,IBM网站上提供的版本为7.9.3。 在AIX下的安装很简单,IBM网站上下载的rpm格式的包。 在http://curl.haxx. se/docs/ ,您可以下载到UNIX格式的man帮助,里面有详细的curl工具的使用说明。 curl的用法为:curl [options] [URL...] 其中options是下载需要的参数,大约有80多个,curl的各个功能完全是依靠这些参数完成的。 具体参数的使用,用户可以参考curl的man帮助。 下面,本文就将结合具体的例子来说明怎样利用curl进行下载。 编辑本段设计方法 获得页面 使用命令:curl http://curl.haxx. se 这是最简单的使用方法。用这个命令获得了http://curl.haxx. se指向的页面,同样,如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地。如果下载的是HTML文档,

CURL的使用

curl应用总结(一) 最近开发中用到curl库,虽然都是很简单的应用,但对这个库还是产生了兴趣,想学习总结一下。curl库功能非常强大,这里主要针对http应用,尤其是http文件下载做一个总结。当然了,还是主要针对Windows系统来讲。 本文是第一篇,当然要简单介绍一下curl,然后说一下Windows系统下的编译安装,以及对curl工具的简单应用。 curl是一个基于命令行的应用工具,提供利用URL标准进行文件传输的功能。目前已经支持非常多的流行的互联网协议,如:FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE等。curl支持SSL认证,HTTP POST/PUT,FTP上传,HTTP 上传、代理、cookies、用户+密码认证、文件续传、代理管道等一系列强大功能。curl是用C语言写的,但是绑定了很多开发语言。大体上可以把curl分成命令行工具和libcurl库两个部分,命令行工具可以直接输入指令完成相应功能,libcurl则是一个客户端URL传输库,是线程安全且兼容IPv6,可以非常方便地用来做相关开发。 更多关于curl的信息可以参考官网http://curl.haxx.se/。curl的相关文档非常全,不得不赞一下。其实查阅原文文档是一个很好的习惯,而且还是一件很惬意的事情,对提高英文阅读能力帮助也很大。 从curl官方网站上可以直接下载到编译好的lib,dll和exe文件,但是自己由源码编译安装curl,也是一件有意思的事情。从网站上下载源码包,解压缩后会看到根文件目录下面有很多文件及文件夹。其中的文件是有关curl项目的介绍、版本变更情况、以及一些有关配置和编译的文件;文件夹中比较重要的有3个:docs、lib和src,docs中包括项目的所有相关文档,lib中为libcurl库的源码,src为curl命令行工具的源码。 如果你熟悉MSVS开发环境的话,那么编译过程再简单不过了,因为最新的curl源码包中已经自带了vc6的工程文件,只要高于6.0版本的环境都可以直接打开工程进行编译链接,生成二进制文件。整个solution中包含两个project,一个是libcurl库,一个是curl的命令行工具。其中,curl.exe运行是要加载libcurl.dll动态库的。另外,自带的工程设置中没有用到OpenSSL或Zlib这些第三方库,如果需要用到相关扩展功能的话,需要配置引用这些库文件进行编译。

elasticsearch学习文档

1.全文搜索引擎elasticsearch 1.1.Elasticsearch简介 Elasticsearch是开源的,分布式的,提供rest接口,支持云端调用的,构建在Apache Lucene之上的搜索引擎。 1.2.优点&缺点 优点:开箱即用,分布式,rest 接口,支持云端调用。 缺点:没有大量商业产品应用。分片的数目不能动态调整,只能在初始化索引的时候指定。 2.E lasticsearch的安装 2.1.运行环境 JDK6以上 2.2.下载Elasticsearch 为了更好的对中文进行分词,减少配置问题,下载集成分词的elasticsearch-rtf(基于elasticsearch 0.90.0,目前elasticsearch更新到0.90.5)版本。Rtf集成了ik、mmseg分词以及searchwrapper、thrift等插件。 什么是ElasticSearch-RTF? RTF是Ready To Fly的缩写,在航模里面,表示无需自己组装零件即可直接上手即飞的航空模型,elasticsearch-RTF是针对中文的一个发行版,即使用最新稳定的elasticsearch版本,并且帮你下载测试好对应的插件,如中文分词插件等,还会帮你做好一些默认的配置,目的是让你可以下载下来就可以直接的使用。下载地址如下:https://https://www.doczj.com/doc/034152322.html,/medcl/elasticsearch-rtf

注释:分词是用于模糊匹配的时候,是把一段话当成词语还是当成单个字来搜索的规则。 2.3.安装 解压elasticsearch-rtf-mast.zip到你指定的目录下即可。 2.4.运行 2.4.1.启动服务 cd/usr/local/elasticsearch/bin/service ./elasticsearch start 第一次启动服务后,在/usr/local/elasticsearch目录生成data目录和logs目录2.4.2.停止服务 cd/usr/local/elasticsearch/bin/service ./elasticsearch stop 3.e lasticsearch配置文件详解 elasticsearch.yml配置文件内容较多,挑几个可能会用的说一下。 https://www.doczj.com/doc/034152322.html,: elasticsearch 配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。 https://www.doczj.com/doc/034152322.html,: "Franz Kafka" 节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt 文件中,其中有很多作者添加的有趣名字。 node.master: true 指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。 network.bind_host: 192.168.0.1

CURL详解

CURL详解 目前为止最全的CURL中文说明了,学PHP的要好好掌握.有很多的参数.大部份都很有用.真正掌握了它和正则,一定就是个采集高手了. PHP中的CURL函数库(Client URL Library Function) curl_close—关闭一个curl会话 curl_copy_handle—拷贝一个curl连接资源的所有内容和参数 curl_errno—返回一个包含当前会话错误信息的数字编号 curl_error—返回一个包含当前会话错误信息的字符串 curl_exec—执行一个curl会话 curl_getinfo—获取一个curl连接资源句柄的信息 curl_init—初始化一个curl会话 curl_multi_add_handle—向curl批处理会话中添加单独的curl句柄资源curl_multi_close—关闭一个批处理句柄资源 curl_multi_exec—解析一个curl批处理句柄 curl_multi_getcontent—返回获取的输出的文本流 curl_multi_info_read—获取当前解析的curl的相关传输信息 curl_multi_init—初始化一个curl批处理句柄资源 curl_multi_remove_handle—移除curl批处理句柄资源中的某个句柄资源curl_multi_select—Get all the sockets associated with the cURL extension,which can then be"selected" curl_setopt_array—以数组的形式为一个curl设置会话参数 curl_setopt—为一个curl设置会话参数 curl_version—获取curl相关的版本信息 curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。 curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。 curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。 curl_version()函数的作用是获取curl相关的版本信息,curl_version()函数有一个参数,不清楚是做什么的

Android源码下载方法详解

Android: Android源码下载方法详解 分类:Android平台 安卓源码下载地址:https://www.doczj.com/doc/034152322.html,/source/downloading.html 相信很多下载过内核的人都对这个很熟悉 git clone git://https://www.doczj.com/doc/034152322.html,/kernel/common.git kernel 但是这是在以前,现在如果这么执行的话,会显示如下内容 Initialized empty Git repository in /home/star/working/kernel/.git/ https://www.doczj.com/doc/034152322.html,[0: 149.20.4.77]: errno=Connection refused fatal: unable to connect a socket (Connection refused) 通过浏览器输入https://www.doczj.com/doc/034152322.html,/,发现该网站已经被重定向为 https://www.doczj.com/doc/034152322.html,/source/downloading.html 可以在该页面的最后发现内核的下载方法。 下面我们介绍一下Android源码下载的步骤。 工作环境: 操作系统:Ubuntu 10.04 或Ubuntu10.10 git程序:1.7.0.4 或1.7.1 转载请注明出处:https://www.doczj.com/doc/034152322.html,/pku_android 方法一: 1.1 初始化安装环境 参考网页https://www.doczj.com/doc/034152322.html,/source/initializing.html 主要要做的就是安装jdk和安装一些软件包 $ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \ libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \ libxml2-utils 如果已经安装了,就不许要这步了 1.2 无论下载内核和源码,都需要进行如下操作 参考网页https://www.doczj.com/doc/034152322.html,/source/downloading.html $ mkdir ~/bin $ PATH=~/bin:$PATH $ curl https://https://www.doczj.com/doc/034152322.html,/dl/googlesource/git-repo/repo > ~/bin/repo 如果出现: repo init error: could not verify the tag 'v1.12.7',

用CURL来发送HTTP请求的方法

使用CURL来发送HTTP请求的方法 原文:Online: http://curl.haxx.se/docs/httpscripting.html 翻译:豆连军 doulianjun@https://www.doczj.com/doc/034152322.html, 本文假设您已经熟悉了HTML和基本网络知识。 拥有脚本语言编写能力对于设计一个漂亮的计算机系统非常重要。UNIX有shell脚本和各种Tools工具,这些可以用来执行各种自动化命令和脚本,从而大大拓展了UNIX的计算能力。这是UNIX为什么如此成功的原因之一。 越来越多的应用转向了WEB,这使得HTTP执行脚本变得更频繁和迫切。为了从web 获得更多的信息,模拟用户浏览、发帖、上传数据等,今天已经成了我们重要工作内容。 Curl是一个命令行工具,用来执行各种URL操作和信息传输。但在本文中将着重描述如何用Curl来完美地执行HTTP请求。我假定您知道如何调用’curl –help’或者’curl –manual’来获得curl的基本信息。 Curl自然不是所有事情都能干。Curl只是生成请求包,获得数据,发送数据获得信息。你可以使用脚本语言或者重复手工调用来完成你想要做的所有事情。 1. HTTP协议 HTTP用来从WEB服务器获得数据。它也是一种建筑在TCP/IP之上的简单协议。HTTP 允许从客户端向服务器端发送数据,这些数据有多种不同的操作方法。这里将给予说明。 HTTP是一些ASCII文字行,这些ASCII文字从客户端发送给服务器端来请求一个特别的操作。然后,服务器端在发送给客户端的实际请求内容之前回应一些文字行。 客户端,也就是curl,发送一个HTTP请求,该请求包含一个操作方法(比如:GET,POST,HEAD等),一组请求头,以及某些时候再携带一些请求消息体。HTTP服务器响应一个状态行(表明操作结果是否成功),响应头,以及大多数情况下还有响应消息体。消息体部分是你请求的实际数据,比如HTML或者图片等。

Elasticsearch-6.2.3集群安装部署及使用文档

elasticsearch-6.2.3 集群安装部署 简介 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便 环境 一个多节点集群中,正常情况下应该包括以下3种类型的节点 ●Master节点 维护元数据,管理集群各个节点的状态,建议3台机器做master ●Data节点 负责数据的查询和导入的,压力较大,需要比master和client更高配置的机器 ●Client节点 作为任务分发用的,它里面也会存元数据,但是它不会对元数据做任何修改。另外他还分担了data节点的压力,把data节点的一次查询结果在client节点上做二次汇聚,如果集群中没有client节点,那么二次汇聚的任务将由datanode来完成 由于本示例节点数较少,暂时没有配置client节点,只有master节点与data节点。在master 节点上同时也配置了data节点 安装 1. Elasticsearch安装之前是不需要配置ssh互信的,因为在es集群的各个节点需要分别执行命令,进行单独启动,程序包里没有提供一个统一启停的命令。如果集群节点数比较多的话,需要整理一个启停脚本,并配置互信,要不然每个节点都启动一次,很麻烦。本示例只有3个节点,单独启停就可以,所以不需要配置ssh互信步骤 2. Elasticsearch软件内部实现了分布式,不需要zookeeper软件,所以zookeeper软件也无需再部署

linux主课系列课程目录及大纲

一、LINUX系统初讲 学习LINUX,先从系统开始,这部分主要为入门级的LINUX基础知识、让我们深入的了解LINUX是什么?如何学好LINUX?以及学习它的一些基本操作、系统启 动流程、简单的命令管理等。学完以后你对LINUX就不会再陌生了。 *此章节为入门课程,,教你快读入门LINUX,妈妈再也不担心我学不会LINUX了 ? 1.1 阿铭LINUX介绍(可试听) ? 1.2 LINUX发行版简介(可试听) ? 1.3 如何学好LINUX(可试听) ? 1.4 创建虚拟机(可试听) ? 1.5 安装CENTOS系统(可试听) ? 1.6 配置IP地址(可试听) ? 1.7 系统启动流程(1)(可试听) ? 1.8 系统启动流程(2)(可试听) ? 1.9 远程连接工具使用(可试听) ? 2.0 密钥验证(可试听) ? 2.1 运行级别(可试听) ? 2.2 单用户模式(可试听) ? 2.3 救援模式(可试听) ? 2.4 CD命令(可试听) ? 2.5 LS命令(可试听) ? 2.6 LINUX环境变量(可试听) ? 2.7 快捷键使用开放(可试听) 二、LINUX系统精讲 有些时候我们看到一些老练的工程师敲键盘速度飞快,各种命令、各种符号,各种看不懂,其实他的大部分命令和操作都在我们这个章节有讲解,这一部分是我多年来对LINUX系统深刻的总结,学完该部分内容后,你会充分了解文件系统及底层 结构,可以在LINUX下熟练进行任何系统层面的操作,让LINUX完全听命于你的 摆布 *此章节会让你对LINUX系统有一个质的飞越,你不得不佩服自己学的这么快 ? 1.1 创建和删除目录 ? 1.2 RM命令

CURL的基本用法说明文档

CURL的基本用法说明文档(含详细代码) Curl基本用法总结如下: CURL是一个超强的命令行工具,其功能非常强大,有Linux/Unix版本的,也有Windows版本的,我平时就经常在Windows下面使用curl做一些测试,非常方便,有时用curl做测试比用浏览器做测试要快得多,方便得多。 1.curl命令帮助选项 C:\>curl --help Usage: curl [options...] Options: (H) means HTTP/HTTPS only, (F) means FTP only -a/--append Append to target file when uploading (F) -A/--user-agent User-Agent to send to server (H) --anyauth Tell curl to choose authentication method (H) -b/--cookie Cookie string or file to read cookies from (H) --basic Enable HTTP Basic Authentication (H) -B/--use-ascii Use ASCII/text transfer -c/--cookie-jar Write cookies to this file after operation (H) -C/--continue-at Resumed transfer offset -d/--data HTTP POST data (H) --data-ascii HTTP POST ASCII data (H) --data-binary HTTP POST binary data (H) --negotiate Enable HTTP Negotiate Authentication (H) --digest Enable HTTP Digest Authentication (H) --disable-eprt Prevent curl from using EPRT or LPRT (F) --disable-epsv Prevent curl from using EPSV (F) -D/--dump-header Write the headers to this file --egd-file EGD socket path for random data (SSL) --tcp-nodelay Set the TCP_NODELAY option -e/--referer Referer URL (H) -E/--cert Client certificate file and password (SSL) --cert-type Certificate file type (DER/PEM/ENG) (SSL) --key Private key file name (SSL) --key-type Private key file type (DER/PEM/ENG) (SSL) --pass Pass phrase for the private key (SSL) --engine Crypto engine to use (SSL). "--engine list" for list --cacert CA certificate to verify peer against (SSL) --capath CA directory (made using c_rehash) to verify peer against (SSL) --ciphers SSL ciphers to use (SSL) --compressed Request compressed response (using deflate or gzip) --connect-timeout Maximum time allowed for connection --create-dirs Create necessary local directory hierarchy

windows下curl的安装和简单使用

windows下curl的安装和简单使用 curl是利用URL语法在命令行方式下工作的开源文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及LDAP。 一.windows下curl的安装 1. 到这里http://curl.haxx.se/download/下载文件 curl-7.17.1-win32-ssl.zip,如果不需要使用ssl的话,可以直接下载curl-7.17.1-win32-nossl.zip,并且直接就可以使用。为了便于以后请求https格式的网址,我们最好使用带ssl功能的。2. 在Windows下为了使用带ssl的curl命令,我们得安装OpenSSL,到 https://www.doczj.com/doc/034152322.html,/products/Win32OpenSSL.html这里下载Win32OpenSSL_Light-1_0_1h.exe,安装即可。 3. 接下来打开cmd,切换到curl目录下,就可以直接使用curl 命令了。二.curl基本命令行 1.查看网页源码,以https://www.doczj.com/doc/034152322.html,为例要想保存这个文件就使用

curl -o [文件名] https://www.doczj.com/doc/034152322.html, 2.只显示头信息想同时显示头信息和源码就使用 curl -i https://www.doczj.com/doc/034152322.html, 结果如图 3.显示通信过程(ip地址,端口号)想看更详细的就使用 curl --trace output.txt https://www.doczj.com/doc/034152322.html, 打开output.txt文件就有相关信息 4.发送表单信息 发送表单信息有GET和POST两种方法。GET方法相对简单,只要把数据附在网址后面就行。 curl https://www.doczj.com/doc/034152322.html,/form.cgi?data=xxx POST方法必须把数据和网址分开,curl就要用到--data参数。 curl --data "data=xxx" https://www.doczj.com/doc/034152322.html,/form.cgi 5.文件上传 假如我们下了个这样的表单

LINUX系统中的CURL命令使用教程

命令:curl 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。 语法:# curl [option] [url] 常见参数: -A/--user-agent 设置用户代理发送给服务器 -b/--cookie -c/--cookie-jar 操作结束后把cookie写入到这个文件中 -C/--continue-at 断点续转 -D/--dump-header 把header信息写入到该文件中 -e/--referer 来源网址 -f/--fail 连接失败时不显示http错误 -o/--output 把输出写到该文件中 -O/--remote-name 把输出写到该文件中,保留远程文件的文件名 -r/--range 检索来自HTTP/1.1或FTP服务器字节范围 -s/--silent 静音模式。不输出任何东西 -T/--upload-file 上传文件 -u/--user -w/--write-out [format] 什么输出完成后 -x/--proxy -#/--progress-bar 进度条显示当前的传送状态 例子:

1、基本用法 代码如下: # curl https://www.doczj.com/doc/034152322.html, 执行后,https://www.doczj.com/doc/034152322.html, 的html就会显示在屏幕上了 Ps:由于安装linux的时候很多时候是没有安装桌面的,也意味着没有浏览器,因此这个方法也经常用于测试一台服务器是否可以到达一个网站 2、保存访问的网页 2.1:使用linux的重定向功能保存 代码如下: # curl https://www.doczj.com/doc/034152322.html, ;; linux.html 2.2:可以使用curl的内置option:-o(小写)保存网页 代码如下: $ curl -o linux.html https://www.doczj.com/doc/034152322.html, 执行完成后会显示如下界面,显示100%则表示保存成功 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 79684 0 79684 0 0 3437k 0 --:--:-- --:--:-- --:--:-- 7781k 2.3:可以使用curl的内置option:-O(大写)保存网页中的文件 要注意这里后面的url要具体到某个文件,不然抓不下来 代码如下: # curl -O https://www.doczj.com/doc/034152322.html,/hello.sh 3、测试网页返回值

2019年四川省高职院校大学生云计算技术与应用技能大赛样题

2019年四川省高职院校大学生云计算技术与应用 技能大赛样题 题目:“企业云服务平台系统”的设计与实现【选手须知】 1. 竞赛试题通过在线“云计算技术与应用”竞赛考试系统和书面文档共同发布,内容完全一致,如出现纸质任务书缺页、字迹不清、与考试系统中不一致等问题,请及时向裁判示意,并进行任务书的更换。 2. 参赛团队应在 4 小时内完成任务书规定内容;选手在竞赛过程中各系统生成的运行记录或程序文件必须存储到在线“云计算技术与应用”竞赛考试系统指定的用户账户中,未存储到指定账户的运行记录或程序文件均不予给分。 3. 选手提交的试卷用工位号标识,不得写上姓名或与身份有关的信息,否则成绩无效。 4. 比赛过程中由于人为原因造成设备或软件损坏,这种情况不予更换。 【用户需求及项目方案】 某大型互联网公司的生产系统用户规模不断增加,每天产生海量的生产数据,这些数据既包括文本、文档、图片、视频等非结构化的数据,同时又包括生产系统和业务系统的结构化数据。为了公司生产系统安全高可用,同时能够统一存储、收集、管理、分析和挖掘这些海量数据,为实现系统弹性扩展、资源按需供给、促进信息技术和数据资源充分利用。该公司拟搭建安全的云计算平台,系统既要满足云网络、云存储和云主机的资

源弹性需求,又要通过基于云平台的大数据服务实现数据的安全存储、授权访问、分析挖掘和快速检索。通过云计算Web应用及Android APP应用实现对数据的随时随地访问、存储空间的监控,通过使用提供的学习、社交、商品、娱乐、交通、股票、天气等某种大数据源和成熟的机器学习算法(ML)进行推荐、预测等大数据分析案例开发。 经公司CIO反复调研,决定选用先电云计算平台搭建云计算平台和大数据系统应用研发。 云平台架构 赛项系统架构如图1所示,IP地址规划如表1所示。 表1 IP地址规划表

linux wget 命令用法详解(附实例说明)

Linux wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。下面我们以实例的形式说明怎么使用wget。 1、使用wget下载单个文件 以下的例子是从网络下载一个文件并保存在当前目录 wget https://www.doczj.com/doc/034152322.html,/wordpress-3.1-zh_CN.zip 在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。 2、使用wget -O下载并以不同的文件名保存 wget默认会以最后一个符合”/”的后面的字符来命令,对于动态链接的下载通常文件名会不正确。 错误:下面的例子会下载一个文件并以名称download.php?id=1080保存 wget http://www.centos.bz/download?id=1 即使下载的文件是zip格式,它仍然以download.php?id=1080命令。 正确:为了解决这个问题,我们可以使用参数-O来指定一个文件名: wget -O wordpress.zip https://www.doczj.com/doc/034152322.html,/download.php?id=1080 3、使用wget –limit -rate限速下载 当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。 wget –limit-rate=300k https://www.doczj.com/doc/034152322.html,/wordpress-3.1-zh_CN.zip 4、使用wget -c断点续传 使用wget -c重新启动下载中断的文件: wget -c https://www.doczj.com/doc/034152322.html,/wordpress-3.1-zh_CN.zip 对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。 5、使用wget -b后台下载 对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载。

【IT专家】Linux 命令详解(十一)Shell 解析 json命令jq详解

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Linux 命令详解(十一)Shell 解析json命令jq详解2017/10/17 10 前言在自动化部署中涉及到shell脚本需要动态读取很多配置文件,最好是json格式。 ?更多jq信息:stedolan.github.io/jq/manual/ ?一、根据key获取value ?语法:jq ‘.key’ ?1、单个值获取 ?www@TinywanAliYun:~$ cat d25341478381063d1c76e81b3a52e0592a7c997f.json | jq ‘.sign’”d25341478381063d1c76e81b3a52e0592a7c997f”2、JSON nested parse(嵌套解析) ?www@TinywanAliYun:~$ cat d25341478381063d1c76e81b3a52e0592a7c997f.json | jq ‘.live_node_config.node1.ip’”192.168.10.10”注意:json 数组的键命名必须为下划线”_”,不能为”-”,否则解析不了。如: ?错误的命名 ?“live-node-proxy-config”: { “ip”: “192.168.10.100”, “user”: “www”, “pwd”: “www123456” },正确 ?“live_node_proxy_config”: { “ip”: “192.168.10.100”, “user”: “www”, “pwd”: “www123456” },小菜刀!!!在这里我们可以使用curl可以获取完全一样的结果 ?www@TinywanAliYun:~$ curl -s ‘https://tinywan/frontend/websocket_client/autoInstallConf’ | jq ‘.live_node_config.node1.ip’”192.168.10.10”curl 的-s 参数表示:静默模式。不输出任何东西,更多了解【curl命令】 ?在这里如果不加该参数则会输出文件下载进度,如下所示: ?www@TinywanAliYun:~$ curl ‘https://tinywan/frontend/websocket_client/autoInstallConf’ | jq ‘.live_node_config.node1.ip’ % Total % Received % Xferd Average Speed Time Time

运维人员笔试题目

北京金万维科技有限公司 运维人员笔试题目 时间:40分钟 一、Linux系统和Shell 1.写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行;(2) 在 非空行前面加一个"AAA",在行尾加一个"BBB",即将内容为11111的一行改为:AAA11111BBB 2.每周一下午三点将/tmp/logs目录下面的后缀为*.log的所有文件rsync同步到备份服 务器192.168.1.100中同样的目录下面,crontab配置项该如何写: 3.找到/tmp/目录下面的所有名称以"_s1.jpg"结尾的普通文件,如果其修改日期在一天 内,则将其打包到/tmp/back.tar.gz文件中 4.写出SHELL函数RevertInput,函数必须获取三个参数,然后将三个参数倒序echo打 印出来,函数必须检查参数个数的合法性,如果参数非法,打印”Illegal parameters”,对于下面的输入: RevertInput “this is para1” para2 para3 应该输出: para3 para2 this is para1 (注:需要注意第一个参数中的空格)

5.如果一个系统使用LVM进行分区管理,请写出调整一个逻辑卷分区大小的命令: 6.如何找出当前系统中磁盘I/O读写占用最高的程序: 二、网络相关 1.一个域名是否可以配置多个A记录?一个域名是否可以配置成多个其他域名的CNAME? 2.请写出用tcpdump抓取符合如下条件包的命令:(1) 目标端口是 80;(2) 来源IP或者 是1.1.1.1,或者是 2.2.2.2;(3) UDP包; 3.用netstat命令配合其他shell命令,按照来源IP统计下所有到80端口的ESTABLISHED 状态链接的个数,输出结果类似(第一列为连接数,第二列为IP): 12 202.165.123.2 35 202.165.123.2 69 202.165.123.2 4.写出一个curl命令,访问指定服务器61.13 5.169.121上的如下URL: https://www.doczj.com/doc/034152322.html,/s?wd=test,访问的超时时间是20秒: 三、LAMP相关 1.写出如何给apache增加virtualhost,让访问https://www.doczj.com/doc/034152322.html,和 https://www.doczj.com/doc/034152322.html,的时候,都打开/var/www/html目录下面的文件:

Linux curl命令参数详解

Linux curl命令参数详解 Linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态。 1.linux curl抓取网页: 抓取百度: curl https://www.doczj.com/doc/034152322.html, 如发现乱码,可以使用iconv转码: curl https://www.doczj.com/doc/034152322.html,/ic.asp|iconv-fgb2312 2.Linux curl使用代理: linux curl使用http代理抓取页面: linux curl使用http代理抓取页面: curl-x111.95.243.36:80https://www.doczj.com/doc/034152322.html,/ic.asp|iconv-fgb2312 curl-x111.95.243.36:80-U aiezu:password https://www.doczj.com/doc/034152322.html, 使用socks代理抓取页面: curl--socks4202.113.65.229:443https://www.doczj.com/doc/034152322.html,/ic.asp|iconv -fgb2312 curl--socks5202.113.65.229:443https://www.doczj.com/doc/034152322.html,/ic.asp|iconv -fgb2312 代理服务器地址可以从看爬虫代理上获取。 3.linux curl处理cookies 接收cookies: curl-c/tmp/cookies https://www.doczj.com/doc/034152322.html,#cookies保存到/tmp/cookies 文件 发送cookies: curl-b"key1=val1;key2=val2;"https://www.doczj.com/doc/034152322.html,#发送cookies文本curl-b/tmp/cookies https://www.doczj.com/doc/034152322.html,#从文件中读取cookies

相关主题
文本预览
相关文档 最新文档