Bash 指令稿入門
Alex Scriven
Data Scientist
在許多情況下,替指令稿設定排程很有用:
用 cron 排程指令稿是現代資料基礎設施的必備技能。
Cron 自 70 年代起就是類 Unix 系統的一部分。人類偷懶已經那麼久了!
名稱來自希臘語中的時間一詞:chronos。
它由稱為 crontab 的東西驅動。這個檔案包含多個 cronjobs,每個都告訴 crontab 要在什麼時候執行哪些程式碼。
你可以用下列指令查看目前已設定的排程(cronjobs):
crontab -l
crontab: no crontab for user
看來我們需要先建立一個排程(cronjob)!
這張來自維基百科的圖片示範如何在 crontab 檔案中撰寫 cronjob。你可以有很多 cronjobs,一行一個。

* 代表「每」一起看幾個 cronjob 範例:
5 1 * * * bash myscript.sh
*,表示每天、每月。
15 14 * * 7 bash myscript.sh
*(每月的每天、每年的每月)。最後一位是第 7 天(星期日)。如果你想一天執行多次,或每隔「X」時間執行,也辦得到:
15,30,45 * * * * 會在每小時的 15、30、45 分執行。第二個星號指定小時,這裡是每小時、每天等。*/15 * * * * 表示每 15 分鐘執行。同樣是每小時、每天等。讓我們把 extract_data.sh 安排在每天清晨 1:30 執行。步驟如下:
crontab -e 編輯你的 cronjobs。nano 很好上手,比 vi(vim)學習曲線更平緩。30 1 * * * extract_data.sh3. 離開編輯器並儲存
如果用的是 nano(在 Mac),請按 ctrl + o,接著 enter,再按 ctrl + x 離開。
你會看到訊息 crontab: installing new crontab。
4. 執行 crontab -l 確認已加入。
30 1 * * * extract_data.sh
做得好!
Bash 指令稿入門