前言
shell 是个好东西,建议学习下:)
本文将讲解如何用shell开发自动化脚本刷新CDN缓存。
为什么会做这个小脚本,根本原因还是懒...
公司的运维,很贴心开发了一个form表单的网页,专门给前端同学刷新CDN缓存。虽然可以满足要求,但是每上一次项目,就得打开该网页,输入SecretKey
和需要刷新的URL地址,很心累。
有痛点,那么就尝试解决它!
一、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/
复制代码
二、脚本解析
凡是在客户端可以跑的命令,都可以用shell集成,做自动化。
2.1 用curl发http请求
curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。
主要了解两种方式:get和post。
- 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/
复制代码
要实现的目的基本达到,但是代码不友好,修改不方便。
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独立成变量
三、执行自动化脚本
- window环境下,可用
Git Bash
工具跑shell - linux环境,直接在终端跑就可以了
命令例子:bash cdn.sh
后记
有前端同事,用commander
+axios
做了一个刷新CDN工具,但是,没我这个来得简单粗爆:)
shell就是这么好用~
参考
喜欢我文章的朋友,可以通过以下方式关注我:
- 「star」 或 「watch」 我的GitHub blog
- RSS订阅我的个人博客:王先生的基地