crontab 定时任务

2018-11-22 技术笔记 1

crontab 简介

crontablinux 下用来设置和管理周期性执行任务的命令,系统启动后会默认启动 crond 守护进程,此进程会每分钟定时检查并执行需要执行的任务。

命令语法

crontab命令行命令格式为:

usage:  crontab [-u user] file
    crontab [ -u user ] [ -i ] { -e | -l | -r }
    file (指定定时任务的文件,将文件作为 crontab 的任务列表文件并载入 crontab)
    -u user (指定需要操作的用户,如果未指定则表示当前用户)
    -e  (编辑用户的 crontab 内容)
    -l  (列表显示某个用户的 crontab 内容)
    -r  (删除用户的 crontab 文件)
    -i  (在删除前是否确认提示)

如查看当前所有的定时任务:

crontab -l

此时系统会列出所有的定时任务,如:

* * * * * cd /home/backend_lara && /usr/bin/php artisan schedule:run

crontab 文件

crontab 包含了由 cron 守护进程处理的时间及指令,每个用户均拥有自己的 crontab 文件,同时在 etc/ 目录下有一份针对整个系统的 crontab 文件,只能通过 root 用户来修改和编辑。
crontab 文件每一行都有固定的格式:分 时 日 月 周 要运行的命令,各个域通过空格分割,每个域可以放置范围内参数及操作符号。

每个参数意义及范围为

  • 分:分钟(0-59)
  • 时:小时(0-23)
  • 日:日期(1-31)
  • 月:月份(1-12)
  • 周:星期(0-7,0和7表示周日)

参数操作符号

  • , 逗号,列举多个值,如 1,3,5
  • - 连词号,指定值的范围,如 1-3 表示 1,2,3
  • * 分号,表示所有可能的值
  • / 正斜杠,指定时间的间隔频率

实例

1. 每分钟执行

* * * * * command

2. 每天早晚八点执行

* 8,20 * * * command

3. 每周一早上八点半执行

30 8 * * 1 command

4. 每隔三小时执行一次

* */3 * * * command

注意事项

  • 慎用 crontab -r 指令,这个指令直接删除用户 crontab 文件。
  • crontab -e 默认使用的编辑器是 nano,习惯 vim 的用户可以执行命令 select-editor 然后选择自己需要的编辑器。

相关文章

快慢指针简单用法

快慢指针简单用法

如何避免愚蠢的见识

罗素关于如何避免有愚蠢的见识这种行为所需要的原则

Markdown 格式示例文章

Markdown 格式示例文章