最近在解一個效能問題。剛好有一項需求是要定時存取伺服器,看伺服器有無實際作用。所以需要用一個 curl
輪詢特定路徑。看伺服器是不是在中途崩潰,或是怎麼了。
主管就說可以用 watch
,一個可以週期性執行任務的 linux
指令。
不過就在我向終端機輸入:
$ watch
zsh: command not found: watch
GG囉,看來 macOS
並沒有此指令,這時可以考慮用 brew
安裝。直接輸入:
$ brew install watch
但這時候就想說,目前就是一個簡單輪詢的任務,不太想裝東西。那就只好手刻一個。例如每 N 秒去拉一次 google.com
的首頁回來:
#!/bin/bash
# usage: watch.sh <your_command> <sleep_duration>
while :; do
cmd=$(curl -s -X GET https://google.com)
echo "$(date) ${cmd}"
sleep "$1"
done
執行時,例如每 5 秒執行一次:
$ bash watch.sh 5
就可以啦