crontab 中简单的@语法糖
本文最后更新于:2024年11月16日 凌晨
说来惭愧,其实我用了这么久的 Linux,一直没有学会编写 crontab 脚本。一行的开头写上五位莫名其妙的数字或星号,后面跟上需要执行的命令,看上去很 kiss,但我确实记不住,以至于我现在每次写 crontab 都是让 ChatGPT 来帮我写。
不过我最近查阅 Linux 下设置开机自启脚本的方案的时候,意外地看到 crontab 中居然可以用 @reboot command
的方式去写,这让我意识到 crontab 也是有一些简单的语法糖的。在查阅了 crontab 的 manual 后,我发现一共有下面这么几种 @ 写法的语法糖。这是在全网大部分的 crontab 中文教程中是没有的。
语法糖 | 执行条件 | 等效表达式 |
---|---|---|
@reboot |
开机时候运行 | |
@yearly |
一年一次 | 0 0 1 1 * |
@annually |
一年一次 | 0 0 1 1 * |
@monthly |
一月一次 | 0 0 1 * * |
@weekly |
一周一次 | 0 0 * * 0 |
@daily |
一天一次 | 0 0 * * * |
@hourly |
一小时一次 | 0 * * * * |
这几个简单的语法糖可以满足大部分 crontab 的情况,免去了对使用者学习并记忆 crontab 的表达式的要求。
比如说,如果我希望我的系统在每次开机时都用 TG Bot 发送一条上线信息,那就是
@reboot curl -s -X POST https://api.telegram.org/bot{id}:{apikey}/sendMessage -d chat_id={uid} -d text="`date`"
crontab 中简单的@语法糖
https://zhul.in/2024/02/08/extra-usage-for-crontab/