在 Linux 中,crontab 是一个系统定时任务工具,它可以在指定时间自动执行脚本或者命令。crontab 任务是由 cron 守护进程管理的,它可以在特定的时间周期性地运行命令或脚本。

在这里插入图片描述

使用 crontab,你可以:

  • 每小时或每日备份你的数据
  • 定期重启指定的服务
  • 自动化系统日志和监控数据的生成

crontab 的工作原理是在规定的时间周期性地运行指定的脚本或命令。在使用 crontab 时,你需要注意以下几点:

  1. 定义 crontab 任务的格式:
    crontab 任务的格式是由五个域组成,分别是分钟、小时、日、月、星期。例如:'30 10 * * ',表示每天的 10:30 运行指定命令或脚本。在这个例子中,星号()代表所有可能的值。你也可以使用逗号分隔的数字列表,并使用一短划线指定数值范围。例如,‘20,30 * * * *’ 表示在每小时的第 20 分钟和第 30 分钟运行命令。

  2. 添加 crontab 任务:
    在命令行下输入 crontab -e 命令,即可进入 crontab 编辑器。在编辑器中可以添加你的 crontab 任务,以及指定任务的运行时间。

  3. 查看和删除 crontab 任务:
    你可以使用 crontab -l 命令检查当前用户的 crontab 任务列表。你也可以使用 crontab -r 命令删除当前用户的 crontab 任务。

crontab 命令参数的解释:

  1. -u
    指定需要操作的用户的用户名。例如,crontab -u user -e 命令将打开 user 用户的 crontab。
  2. -e
    编辑用户的 crontab。例如,crontab -e 命令会打开当前用户的 crontab,让你可以编辑它。
  3. -l
    列出当前用户的 crontab。例如,crontab -l 命令可以用来查看当前用户的 crontab 中包含哪些任务。
  4. -r
    删除当前用户的 crontab。例如,crontab -r 命令会删除当前用户的 crontab。
  5. -i
    在删除 crontab 时进行提示。例如,crontab -r -i 命令会在删除 crontab 时进行提示,确认是否要删除。

crontab 文件中每行的格式如下:

分钟 小时 日 月 周 命令或脚本路径

在其中:

分钟:表示需要执行的分钟数,取值范围是0-59;
小时:表示需要执行的小时数,取值范围是0-23;
日:表示需要执行的日期,取值范围是1-31;
月:表示需要执行的月份,取值范围是1-12;
周:表示需要执行的星期,取值范围是0-7,其中0和7都表示周日;
命令或脚本路径:表示需要执行的命令或脚本路径。

星号(*)表示所有可能的值
在 crontab 中,星号表示所有可能的值。如果你想要一个任务每小时运行一次,那就可以将分钟数设为星号形式,如 * * * * *,这样这个任务会在每个小时的每个分钟都会运行一次。

逗号(,)表示数值列表
逗号用来分隔数值列表,例如,1,4,7,10 * * * * 意味着任务将在每个小时的第 1、4、7 和 10 分钟分别运行一次。

小破折号(-)表示数值区间
小破折号用来表示数值区间。例如,5-10 * * * * 表示任务会在每个小时的第 5 分钟至第 10 分钟之间都会运行一次。

正斜杠(/)表示时间间隔
斜杠用来指定时间间隔,例如,*/15 * * * * 表示任务会每隔 15 分钟就会运行一次。这也可以等价写成 0,15,30,45 * * * *。

数值
数字指定列表的值,例如 30 14 1,15 * * 表示任务将在 1 号和 15 号的第 14 小时 30 分运行。

常用的例子

*/1 * * * * service mysqld restart //每隔1分钟执行一次
*/10 * * * * service mysqld restart //每隔10分钟执行一次
0 */1 * * * service mysqld restart //每1小时执行一次
0 */2 * * * service mysqld restart //每2小时执行一次
0 10 * * * service mysqld restart //每天10点执行
30 19 * * * service mysqld restart //每天19点30分执行
0 10 1 10 * service mysqld restart //每年的10月1日10点执行
0 20 8 8 * service mysqld restart //每年的8月8日20点执行

在线工具

一个好用的工具Crontab.guru,它是一个快速、简单的在线计划任务编辑器。无须下载安装,只要依照 Crontab.guru 指定每列的时间,就可快速完成计划任务的内容。

网址:https://crontab.guru/

总结

一般情况下,在创建或修改 crontab 任务时不需要重启服务,因为 crontab 任务是由 cron 守护进程负责管理的。cron 守护进程每分钟都会检查一次 crontab 任务的变化,如果有新任务或者任务发生了修改,cron 守护进程会自动更新任务。因此,用户只需在 crontab 文件中添加或修改任务即可,无需重启系统服务。

总之,crontab 是一个强大的系统定时任务工具,可以使管理员更有效地自动化处理各种任务,从而节省时间并减轻地管理员的工作负担。

在这里插入图片描述

Logo

更多推荐