curl命令详解
curl命令是linux中用于文件传输的安全工具,在PC及嵌入式linux系统中,取代了ftp命令
·
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 <user[:password]> :设置服务器的用户名和密码
-C/--continue-at <offset> :断点续传
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
更多推荐
已为社区贡献2条内容
所有评论(0)