shell妙用 —— 发post请求刷新CDN缓存

前言

shell 是个好东西,建议学习下:)html

本文将讲解如何用shell开发自动化脚本刷新CDN缓存。
为何会作这个小脚本,根本缘由仍是懒...
公司的运维,很贴心开发了一个form表单的网页,专门给前端同窗刷新CDN缓存。虽然能够知足要求,可是每上一次项目,就得打开该网页,输入SecretKey和须要刷新的URL地址,很心累。
有痛点,那么就尝试解决它!前端

1、shell脚本

#!bin/bash
# 刷新cdn

urls="https://***.com/page1;\
https://***.com/page2;"

curl \
 -X POST \
 --data-urlencode "qq=00" \
 --data-urlencode "ws=01" \
 --data-urlencode "SecretKey=***" \
 --data-urlencode "flushurl=${urls}" \
 http://127.0.0.1/
复制代码

2、脚本解析

凡是在客户端能够跑的命令,均可以用shell集成,作自动化。linux

2.1 用curl发http请求

curl是一种命令行工具,做用是发出网络请求,而后获得和提取数据,显示在"标准输出"(stdout)上面。ios

主要了解两种方式:get和post。git

  • get 请求
curl example.com/a.html?data=xxx
复制代码
  • post 请求
curl -X POST --data "data=xxx" example.com/form.cgi
复制代码
  • post 请求(encode参数)
curl -X POST--data-urlencode "date=April" example.com/form.cgi
复制代码

2.2 集成到shell脚本,自动化

#!bin/bash
curl  -X POST --data-urlencode "qq=00" --data-urlencode "ws=01" --data-urlencode "SecretKey=***" --data-urlencode "flushurl=https://***.com/page1;https://***.com/page2;" http://127.0.0.1/
复制代码

要实现的目的基本达到,可是代码不友好,修改不方便。github

2.3 优化代码

#!bin/bash

urls="https://***.com/page1;\
https://***.com/page2;"

curl \
 -X POST \
 --data-urlencode "qq=00" \
 --data-urlencode "ws=01" \
 --data-urlencode "SecretKey=***" \
 --data-urlencode "flushurl=${urls}" \
 http://127.0.0.1/
复制代码
  • 将命令的每一个参数进行换行,用反斜杠续行
  • 常常修改的url独立成变量

3、执行自动化脚本

  • window环境下,可用Git Bash工具跑shell
  • linux环境,直接在终端跑就能够了

命令例子:bash cdn.shshell

后记

有前端同事,用commander+axios作了一个刷新CDN工具,可是,没我这个来得简单粗爆:)
shell就是这么好用~axios

参考


喜欢我文章的朋友,能够经过如下方式关注我:缓存

相关文章
相关标签/搜索