白日依山尽,黄河入海流。欲穷千里目,更上一层楼。 -- 唐·王之涣

20220506 consul restful api汇总

介绍后端服务在使用Consul时不同的配置方式及Consul的 RESTful HTTP API 接口,主要是对不同类型的endpoint 进行增删改查 ...
阅读更多

linux curl请求中的单引号、双引号及变量

4.1、单引号、双引号结合使用

参数是在单引号中,比如 'Content-type:application/json'
json中的 k-v 是要在双引号中,所以如果遇到要在curl中使用变量,就使用 字符串拼接

1
2
3
curl -i -X POST -H 'Content-type:application/json' \
-d '{"msgtype": "text", "text": {"content": "'$warnmsg'"}}' \
'https://oapi.dingtalk.com/robot/send?access_token=xxx'

4.2、全部使用双引号

不方便的地方在于json中的k-v都需要使用双引号,那就需要进行转移",如果json中的k-v很多,那就书写有点麻烦

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
curl -X POST -H "Content-Type:application/json"  \
-d "{\"userid_list\": \"${userid}\" ,\"msg\": {\"msgtype\": \"text\", \"text\": {\"content\": \"${build_msg}\"}}}" "https://oapi.dingtalk.com/robot/send?access_token=xxx"
​```

## 补充

1、curl下载文件

+ -o filename

`-o` 参数需要后面紧跟一个自定义的文件名

所以除了URL是具体的文件地址之外,URL也可以是非具体地址,比如 https://www.baidu.com 会报错整个网页的内容

+ -O

该参数后面跟的URL地址只能是具体的文件地址

另外

`-C` 可以实现断点续传
`-#` 显示下载进度
`-s` 静默输出
`-A` 模拟浏览器,比如`Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)`
`-e` 伪造referer(盗链)

2、监控网页请求性能

核心是利用`-w`参数(--write-out)使用curl内置的标识来输出请求过程的一些性能数据,比如状态码、总响应时长、DNS解析时长等

比如

```bash
curl -s -o /dev/null -w "%{http_code} %{remote_ip} %{time_total}" https://www.baidu.com

输出了状态码、用户IP和响应时长

具体的标识有:

content_type
filename_effective
ftp_entry_path
http_code
http_connect
local_ip
local_port
num_connects
num_redirects
redirect_url
remote_ip
remote_port
size_download
size_header
size_request
size_upload
speed_download
speed_upload
ssl_verify_result
time_appconnect
time_connect
time_namelookup
time_pretransfer
time_redirect
time_starttransfer
time_total
url_effective

Shell实现文件中的N行合并为一行

有时候想从网页上把一些表格类数据下载下来,但是页面有没有提供下载功能,直接复制下来粘贴到文本文件每个列又换行成独自的一行,如何实现自动转化呢?核心就是文件行的合并... ...
阅读更多

Ansible系列-提高篇-Ansible playbook总结

之前我们在介绍ansible的基本用法的时候,是通过命令行参数 -m 和 -a 配置使用的,这种方式叫做`ad-hoc` ,它的好处是方便快捷,适用临时测试,但是它写的任务是一次性的。
阅读更多

Ansible系列文章总览

之前使用Ansible都是零零散散的,最近在新的工作岗位感受到了`ansible-playbook`带来的巨大甜头,过程中也出现忘记一些ansible基础的东西,基于此,故重新梳理下系列文章
阅读更多

nginx location uri truncate

说明:

location 中的 root 和 alias

  • root 指令只是将搜索的根设置为 root 设定的目录,即不会截断 uri,而是使用原始 uri 跳转该目录下查找文件
  • aias 指令则会截断匹配的 uri,然后使用 alias 设定的路径加上剩余的 uri 作为子路径进行查找

location 中的 proxy_pass 的 uri

  • 如果 proxy_pass 的 url 不带 uri

    • 如果尾部是”/“,则会截断匹配的uri
    • 如果尾部不是”/“,则不会截断匹配的uri
  • 如果proxy_pass的url带uri,则会截断匹配的uri

阅读更多

linux小技巧之Linux grep Tab 键失效

在实际工作中日志检索,简单数据分析等会遇到记录中存在Tab键\t的情况,默认grep 'xxx\tyyy input-filename` 会失效


解决办法有以下两种方式

-P perl模式

root@pts/4 $ grep -P '28\t1\tchr01' search.txt
28    1    chr01    280000    3.052

‘$’ 模式

其实是用'$'\t' 代替了 \t

root@pts/4 $ grep '28'$'\t1'$'\tchr01'$'\t' search.txt
28    1    chr01    280000    3.052

通过观察比较,采用-P的方式更简洁方便些