可以透過下面的命令編輯 crontab 任務列表。

crontab [-u user] -e

crontab 是一個命令列工具,它的作用就是定期執行任務。macOS,BSD,Linux 等系統中都是內建的功能。

比如在 macOS 下,我想每週一早上 6 點執行一次命令,更新 homebrew 列表,可以:

先透過

crontab -e

開啟 vim 編輯 crontab 列表。(如果你不會使用 vim,那麼記住按 i 可以進入編輯模式,esc 退出編輯模式。命令模式下依次按:wq(3 個鍵,包括冒號)可以儲存退出)

將下面的資訊新增到 crontab 列表。

0 0 6 * * 1 /usr/local/bin/brew update

下面簡單說一下 crontab 列表的格式。

* * * * * command
* - minute (0-59)
* - hour (0-23)
* - day of the month (1-31)
* - month (1-12)
* - day of the week (0-6, 0 is Sunday)
command - command to execute

老張說:

還有些比較特殊的用法,比如 */n, a-b 等等。

下面再詳細說下。這次 crontab 列表如下表示 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程式。
當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程式,其餘類推
當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推
當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推
當 f1 為 a, b, c,… 時表示第 a, b, c,… 分鐘要執行,f2 為 a, b, c,… 時表示第 a, b, c…個小時要執行,其餘類推

挺簡單的,舉幾個例子就明白了:

每月每天 7 點的第 0 分鐘執行一次 /bin/ls :

0 7 * * * /bin/ls

在 12 月內(12 月,不是 1-12 月), 每天的早上 6 點到 12 點中,每隔 20 分鐘執行一次 /usr/bin/backup :

0/20 6-12 * 12 * /usr/bin/backup

週一到週五每天下午 5:00 更新 homebrew 列表 :

0 17 * * 1-5 brew update

每月每天的午夜 0 點 20 分, 2 點 20 分, 4 點 20 分….執行 echo “haha”

20 0-23/2 * * * echo "haha"

支援我們

如果您喜欢这篇文章,您可以分享给您的朋友,分享到您的社交账号比如:

或者 点击这个链接 观看广告支持我【广告内容与我们无关,请不要轻易相信并打开弹出的广告】。
若您经济宽裕,更欢迎通过下面的方式小额赞助以支持我们的创作。