linux常用命令之curl

简介:

1,查看TCP链接和SSL连接占用的时间:

curl -w "TCP handshake: %{time_connect}, SSL handshake: %{time_appconnect}\n" https://robin.**.com  -so /dev/null


2,指定用户名密码和pop3协议验证

Username :testuser password:123

curl -i -H 'Auth-User: testuser' -H 'Auth-Pass: 123' -H 'Auth-Protocol: pop3' http://192.168.2.163:8000/auth/



更多参数参考:

http://www.cnblogs.com/duhuo/p/5695256.html


curl -k -T /home/zsx/ip -u serverlog_web_wr:TGuss0SCRaiDqkAevtw8 ftps://10.11.17.76:990/serverlog_ctu/

上传sslftp

curl -T /home/zsx/ip -u serverlog_web_wr:TGuss0SCRaiDqkAevtw8 ftp://10.11.17.76:990/serverlog_ctu/

普通ftp上传

curl -O/-o  下载大O需要精确到具体文件

-r  设置下载文件大小

-C  断点续传

-x  使用代理访问

-c  操作结束后吧cookie写到指定文件中

-H  自定义头信息传递给服务器

-I  只显示文档信息

-k/--insecure 允许不使用证书到SSL站点

-l/--list-only 列出ftp目录下的文件名称

-m/--max-time <seconds> 设置最大传输时间

-r/--range <range>检索来自HTTP/1.1或FTP服务器字节范围

-s/--silent静音模式。不输出任何东西

-N/--no-buffer 禁用缓冲输出

urls=('www.baidu.com' 'www.google.com' 'www.lazysa.com');for i in ${urls[@]}; do http_code=$(curl -I -s $i ); echo $i status: ${http_code:9:3}; done


一、实际使用的例子

使用curl上传文件到sslftp的实际例子:

WORKDIR=/path/gydbbak

cd $WORKDIR


NU=$1

if [ -z "$2" ] ; then

DT=`date +'%Y%m%d'`

else

DT=$2

fi

if [ -z "$3" ] ; then

HH=05

else

HH=$3

fi


if [ -z "$NU" ] ; then

echo "请输入欲上传的组号 !"

exit

fi


DATADIR=/path/gydbbak/dbbak/

DATAFILE=$DATADIR/$DT/$NU/gydb-dump-$DT$HH.sql.gz


#上传md5文件

curl -k -T $DATAFILE.md5 -u user:passwd ftps://10.11.17.76:990/partnerdb/guyu/$NU-gydb-dump-$DT$HH.sql.gz.md5

#上传压缩包

curl -k -T $DATAFILE -u user:passwd ftps://10.11.17.76:990/partnerdb/guyu/$NU-gydb-dump-$DT$HH.sql.gz

#列目录

curl -k -u user:passwd ftps://10.11.17.76:990/partnerdb/guyu/|grep $DT$HH


相比以前用sslftp客户端,curl优势在于:简单易用、且支持大于2G的文件,以前用sslftp时,超过2G的文件还需要先进行切割,特别麻烦。

上述脚本稍加修改即可快速适用于各个项目的DB备份上传功能需求。



二、原文分享

curl可以在shell下轻松上传下载ftp上的文件,相比ftp命令更具有优势,因为它能在单命令条件下,下载或者上传一个ftp文件,甚至可以删除文件。

下面看实例:

1、列出ftp服务器上的目录列表:

curl ftp://www.quany.info/ –user name:passwd

curl ftp://www.quany.info/ –u name:passwd #简洁写法

curl ftp://name:passwd@www.quany.info #简洁写法2

2、只列出目录,不显示进度条

curl ftp://www.quany.info –u name:passwd -s

3、下载一个文件:

curl ftp://www.quany.info/size.zip –u name:passwd -o size.zip

4、上载一个文件:

curl –u name:passwd -T size.mp3 ftp://www.quany.info/mp3/

5、从服务器上删除文件(使用curl传递ftp协议的DELE命令):

curl –u name:passwd ftp://www.quany.info/ -X ‘DELE mp3/size.mp3′

6、另外curl不支持递归下载,不过可以用数组方式下载文件,比如我们要下载1-10.gif连续命名的文件:

curl –u name:passwd ftp://www.quany.info/img/[1-10].gif –O #O字母大写

7、要连续下载多个文件:

curl –u name:passwd ftp://www.quany.info/img/[one,two,three].jpg –O #O字母大写

—————————————————————————————————————

8、wget下载文件:

用户账户:quany

用户密码:123456

ftp下载

wget ftp://quany:123456@www.quany.info/xxx.zip

http下载

wget –http-user=quany –http-passwd=123456 http://www.quany.info/xxx.zip

9、wget参数:

wget的参数较多,但大部分应用只需要如下几个常用的参数:

-r 递归;对于HTTP主机,wget首先下载URL指定的文件,然后(如果该文件是一个HTML文档的话)递归下载该文件所引用(超级连接)的所有文件(递归深度由参数-l指定)。对FTP主机,该参数意味着要下载URL指定的目录中的所有文件,递归方法与HTTP主机类似。

-N 时间戳:该参数指定wget只下载更新的文件,也就是说,与本地目录中的对应文件的长度和最后修改日期一样的文件将不被下载。

-m 镜像:相当于同时使用-r和-N参数。

-l 设置递归级数;默认为5。-l1相当于不递归;-l0为无穷递归;注意,当递归深度增加时,文件数量将呈指数级增长。

-t 设置重试次数。当连接中断(或超时)时,wget将试图重新连接。如果指定-t0,则重试次数设为无穷多。

-c 指定断点续传功能。实际上,wget默认具有断点续传功能,只有当你使用别的ftp工具下载了某一文件的一部分,并希望wget接着完成此工作的时候,才需要指定此参数。

使用举例:

wget -m -l4 -t0 http://www.quany.info/

将在本地硬盘建立http://www.quany.info/的镜像,镜像文件存入当前目录下一个名为www.quany.info的子目录中(你也可以使用-nH参数指定不建立该子目录,而直接在当前目录下建立镜像的目录结构),递归深度为4,重试次数为无穷(若连接出现问题,wget将坚韧不拔地永远重试下去,知道任务完成!)

另外一些使用频率稍低的参数如下:

-A acclist / -R rejlist:

这两个参数用于指定wget接受或排除的文件扩展名,多个名称之间用逗号隔开。例如,假设我们不想下载MPEG视频影像文件和.AU声音文件,可使用如下参数:

-R mpg,mpeg,au

其它参数还有:

-L 只扩展相对连接,该参数对于抓取指定站点很有用,可以避免向宿主主机的其他目录扩散。例如,某个人网站地址为:http://www.quany.info/~ppfl/,使用如下命令行:

wget -L http://www.quany.info/~ppfl/

则只提取该个人网站,而不涉及主机www.quany.info上的其他目录。

-k 转换连接:HTML文件存盘时,将其中的非相对连接转换成为相对连接。

-X 在下载FTP主机上的文件时,排除若干指定的目录

另外,下面参数用于设置wget的工作界面:

-v 设置wget输出详细的工作信息。

-q 设置wget不输出任何信息。

原文:http://hi.baidu.com/leejun_2005/blog/item/873f9aedfe83943b63d09feb.html

参考: http://bolg.malu.me/html/2011/1239.html

http://fanqiang.chinaunix.net/a6/b9/20020514/060201225.html



      本文转自Tenderrain 51CTO博客,原文链接:http://blog.51cto.com/tenderrain/1616959,如需转载请自行联系原作者




相关文章
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
110 8
|
1月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
398 6
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
88 3
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
80 2
|
20天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
50 14
Linux 10 个“who”命令示例
|
9天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
85 20
|
10天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
35 7
|
29天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
34 9
|
28天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
1月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
134 3