前言
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訂閱我的個人部落格:王先生的基地