可以通过下面的命令编辑 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"
支持我们
如果您喜欢这篇文章,您可以分享给您的朋友,分享到您的社交账号比如:
或者 点击这个链接 观看广告支持我【广告内容与我们无关,请不要轻易相信并打开弹出的广告】。
若您经济宽裕,更欢迎通过下面的方式小额赞助以支持我们的创作。