专栏首页leon的专栏shell妙用 —— 发post请求刷新CDN缓存

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

前言

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就是这么好用~

参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • GET, POST,PUT,DELETE和CRUD的对应关系?

    GET,POST,PUT,DELETE和CRUD的对应关系?注意:以上CRUD增删改查(create,retrieve,update,delete)整套CRUD...

    马克java社区
  • 如何解决IIS中网站匿名访问权限的问题

     我碰到的一些小故障,新上的服务器开站点全部有问题,都出现401错误,这个错误出现次数太多了,解决很多次了,不外乎就是权限设置,帐户密码同步,目录保护等方面的错...

    习惯说一说
  • Android 9.0 适配指南

    国内从去年开始就有消息说,应用上架或者更新要求TargetSdkVersion最低要为26以上,也就是最低也要适配到8.0。今年来也都逐步地开始落实。比如下图的...

    Rouse
  • 「资深前端工程师总结」前端面试知识点大全—计算机基础知识

    3)、进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

    用户5997198
  • 如何实现异步执行

    浏览器和服务器之间只一种面向无连接的HTTP协议进行通讯的,面向无连接的程序的特点是客户端请求服务端,服务端根据请求输出相应的程序,不能保持持久连接。

    公众号php_pachong
  • 最全的机器学习入门资料

    可汗学院,是由孟加拉裔美国人萨尔曼·可汗创立的一家教育性非营利组织,主旨在于利用网络影片进行免费授课。

    猴子聊数据分析
  • 分子动力学软件LAMMPS(并行版)Linux系统安装教程

    Large-scale Atomic/Molecular Massively Parallel Simulator (LAMMPS) 广泛应用于微/介观尺度金属...

    DanielZhang
  • SonarQube部署及代码质量扫描入门教程

    参考:https://ken.io/note/centos-mysql57-setup

    ken.io
  • 精选6大界面交互网站,个个好用到爆!

    UI movement此站更新比较快,主要展示移动APP的动效界面为主。是一个致力于手机和分享最好的UI设计灵感,帮助设计师获得最优秀的UI设计作品,通过邮箱可...

    宇相
  • apache漏洞 服务器远程执行恶意代码漏洞的修复与加固

    apache最近爆出的漏洞越来越多,旗下的solr产品存在远程服务器执行恶意代码漏洞,该漏洞产生的主要原因是因为apache dataimporthandler...

    网站安全专家

扫码关注云+社区

领取腾讯云代金券