curl命令详解

curl 日志分析

curl是一个利用URL规则在命令行下工作的文件传输工具,
是一款很强大的http命令行工具。
它支持文件的上传和下载,是综合传输工具,习惯称url为下载工具

1. 原样保存日志

1. 下载文件

curl -k -O 'https://xxx.tgz'  2>&1 | tee curl.log

命令解析

-k 		:允许连接到没有证书(H)的SSL站点
-O 		: 使用远程文件的文件名作为本地文件名
-o      : 自定义下载后文件名字
            url -o xxx-1.tgz https://xxx.tgz
2>&1 	:将标准错误重定向到标准输出
tee 	: 从标准输入读取并写入标准输出和文件
-u/--user    :设置服务器的用户名和密码
-C/--continue-at    :断点续传

2. 分析日志文件

tail curl.log | tr "\r" "\n"
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  3 8674k    3  301k    0     0   286k      0  0:00:30  0:00:01  0:00:29  287k
 15 8674k   15 1386k    0     0   690k      0  0:00:12  0:00:02  0:00:10  691k
 30 8674k   30 2650k    0     0   880k      0  0:00:09  0:00:03  0:00:06  882k
 44 8674k   44 3834k    0     0   958k      0  0:00:09  0:00:04  0:00:05  958k
 59 8674k   59 5135k    0     0  1022k      0  0:00:08  0:00:05  0:00:03 1022k
 73 8674k   73 6337k    0     0  1055k      0  0:00:08  0:00:06  0:00:02 1218k
 88 8674k   88 7652k    0     0  1090k      0  0:00:07  0:00:07 --:--:-- 1251k
100 8674k  100 8674k    0     0  1124k      0  0:00:07  0:00:07 --:--:-- 1281k

提取日志的最后一行

tail curl.log | tr "\r" "\n" | tail -n 1

删除重复的空格

tail curl.log | tr "\r" "\n" | tail -n 1 | tr -s " "

提取某一列

# 提取日志的第一列,获取下载的百分比
tail curl.log | tr "\r" "\n" | tail -n 1 | tr -s " " | cut -d " " -f 1

2. 将传输进度显示为进度条

1. 下载文件

curl -# -k -O 'https://xxx.tgz'  2>&1 | tr "\r" "\n" | tee curl.log  

命令解析

-# 				: 将传输进度显示为进度条
-k 				:允许连接到没有证书(H)的SSL站点
-O 				: 使用远程文件的文件名作为本地文件名
2>&1 			:将标准错误重定向到标准输出
tr "\r" "\n" 	: 将文本中的"\r"替换为"\n"
tee 			: 从标准输入读取并写入标准输出和文件

2. 分析日志文件

                                                                           0.0%
                                                                           1.4%
#                                                                          1.6%
##                                                                         2.9%
###                                                                        4.2%
#####                                                                      7.9%
####################                                                      28.8%
###########################                                               37.5%
#####################################                                     52.4%
############################################                              61.7%
##########################################################                80.6%
######################################################################    98.3%
######################################################################## 100.0%

获取下载进度

tail log -n 1 | tr -s " " | cut -d " " -f 2

通过ftp下载文件

curl可以通过ftp下载文件,cur提供了两种语法:

curl -O -u 用户名:密码 ftp://www.linux.com/dodo1.JPG
curl -O ftp://用户名:密码@www.linux.com/dodo1.JPG

上传文件

curl不仅仅可以下载文件,还可以上传文件。通过内置option:-T来实现
curl -T dodo1.JPG -u 用户名:密码 ftp://www.linux.com/img/

通过ftp上传文件

//用户名tcu, 密码cl5899, url地址:ftp://10.8.245.70/kong/, 上传文件free.log
curl -u tcu:cl5899 ftp://10.8.245.70/kong/ -T free.log

//如果指定的目录不存在,会报错
[root@tcu /mnt/data]# curl -u tcu:cl5899 ftp://10.8.245.70/kong1/ -T free.log
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (9) Server denied you to change to the given directory
    
//先创建指定目录
[root@tcu /mnt/data]# curl -u tcu:cl5899 ftp://10.8.245.70 -Q "MKD test-kong"
04-26-22  05:14PM                   74 free.log
04-26-22  05:25PM       <DIR>          kong
04-26-22  05:33PM       <DIR>          test
04-26-22  05:34PM       <DIR>          test-kong
04-26-22  05:01PM                   44 top.log
[root@tcu /mnt/data]# curl -u tcu:cl5899 ftp://10.8.245.70/test-kong/ -T free.lo
g
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    74    0     0  100    74      0   1947 --:--:-- --:--:-- --:--:--  2114    

你可能感兴趣的:(linux,系统操作,linux应用,服务器,网络协议,linux)