mac crontab
什么是 crontab
crontab 是一个专门用于管理 cron 表达式的工具,它可以实现定时执行任务,而不需要人的参与。它可以根据用户输入的 cron 表达式,自动按照指定的频率执行指定的任务。它简化了定时任务的管理,提高了工作效率。crontab 充当了管理员的角色,它来“发号施令”,Mac 乖乖干活。
crontab 在 Mac 中已经自带,不需要额外安装。
如何管理 crontab
- 查看当前正在运行的 cron 任务
bash复制代码# 显示与 cron 相关的进程和命令,以及它们的 PID(进程 ID)
ps -ef | grep cron
- 停止 cron 服务
bash复制代码# 暂停所有任务的执行
sudo launchctl unload /System/Library/LaunchDaemons/com.vix.cron.plist
- 启用 cron 服务
bash复制代码# 恢复所有任务的执行
sudo launchctl load /System/Library/LaunchDaemons/com.vix.cron.plist
注意:添加定时任务后,不需要先停用后启用 cron 来重新加载它。
- 编辑任务
bash复制代码# 完成编辑后,保存并关闭文本编辑器即可
crontab -e
- 删除任务(
慎用
)
bash复制代码# 注意!!!这将删除所有 cron 任务,包括重要的系统任务!!!
crontab -r
- 列出任务
bash复制代码# 列出当前用户的所有 cron 表达式
crontab -l
cron 表达式(具体命令)
既然 crontab 是管理 cron 表达式 的,那就必须要了解了解 cron 表达式了。
cron 表达式是一个时间计划的字符串,用于指定何时运行命令或脚本。每个字段代表一个时间节点,它们分别是分钟(0-59)、小时(0-23)、日(1-31)、月(1-12)、星期(0-6),它们之间用一个空格分隔。
scss复制代码* * * * *
- - - - -
| | | | |
| | | | +----- day of the week (0 - 6) (Sunday=0)
| | | +---------- month (1 - 12)
| | +--------------- day of the month (1 - 31)
| +-------------------- hour (0 - 23)
+------------------------- minute (0 - 59)
每个字段都代表时间的不同部分,例如,第一个字段代表分钟,第二个字段代表小时,以此类推。
字段可以使用以下符号和值:
- 星号(
*
):匹配任何可能的值。 - 逗号(
,
):用于分隔多个可能的值。 - 连接号(
-
):用于指定一系列连续的值。 - 正斜杠(
/
):用于指定间隔时间。例如,*/5
表示每隔 5 个时间单位(分钟、小时等)执行一次命令。 - 数字:表示具体的时间值。
以下是一些例子:
0 0 * * *
:每天午夜执行一次。0 0 * * 1
:每周一午夜执行一次。0 9-17 * * 1-5
:工作日的 9 点到 17 点每隔一小时执行一次。0 */3 * * *
:每隔 3 小时执行一次。*/5 * * * *
:每隔 5 分钟执行一次。
需要注意的是,cron 表达式的时间是基于系统时区设置的,因此请确保在编写 cron 表达式时考虑正确的时区。
如果你看了上面的例子还是不会写,请不要怀疑🤨,这是我的问题。但是希望下面的这个小工具可以帮到你,网站地址请点击这里。
crontab 执行记录
在 Mac 系统中可以使用命令行工具 "cron" 来查看 crontab 执行记录。
- 打开终端。
- 输入以下命令,查看 crontab 中设置的任务:
crontab -l
- 若想查看 cron 中所有用户的任务记录,可以使用:
cat /var/log/cron.log
- 另外,还可以使用 syslog 查看 cron 日志。
tail -f /var/log/system.log