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

參考


喜歡我文章的朋友,能夠經過如下方式關注我:緩存

相關文章
相關標籤/搜索