Linux利用crontab设置定时任务,每分钟/每小时/每天/每月定时执行

本文目录
隐藏
1
crontab介绍
2
crontab使用方式
3
crontab实例

我们在使用Linux系统的VPS时,有时候需要用到定时任务,例如每天备份数据、每个月重启一次MySQL服务等,而这些定时任务都可以借助crontab非常方便的实现。本文介绍下Linux crontab命令,以及如何利用conrtab设置定时任务,每分钟/每小时/每天/每月定时执行。

 

crontab介绍

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令,Linux中,crontab也是一个非常常用的用来定时执行程序的命令。

 

crontab使用方式

基本我们常用的就是编辑crontab命令和查看crontab命令,使用方式如下:

# 查看用户目前的所有crontab
crontab -l

# 编辑当前用户的crontab
crontab -e

在编辑crontab命令时,可以使用vim编辑器进行编辑,vim编辑器的使用可以参考Linux下使用vim编辑以及新建文件。

crontab命令的基本格式如下:

* * * * * command

5个*分别代表分、时、日、月、周,数值范围如下:

代表意义 分钟 小时 日期 月份 命令
数字范围 0~59 0~23 1~31 1~12 0~7 需要执行的命令

其中周的0和7都代表周日(星期天)。

例如每天0点0分重启VPS:0 0 * * * reboot

常用的辅助字符解释如下:

特殊字符 代表意义
*(星号) 代表任何时刻都接受的意思。举例来说,范例一内那个日、月、周都是*,就代表着不论何月、何日的礼拜几的12:00都执行后续命令的意思。
,(逗号) 代表分隔时段的意思。举例来说,如果要执行的工作是3:00与6:00时,就会是:0 3,6 * * * command时间还是有五列,不过第二列是 3,6 ,代表3与6都适用
-(减号) 代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行一项工作:20 8-12 * * * command仔细看到第二列变成8-12.代表 8,9,10,11,12 都适用的意思
/n(斜线) 那个n代表数字,即是每隔n单位间隔的意思,例如每五分钟进行一次,则:*/5 * * * * command用*与/5来搭配,也可以写成0-59/5,意思相同

 

crontab实例

下面以crontab 每分钟、每小时、每天、每周、每月、每年执行各举一个例子:

  • crontab每3分钟执行一次  */3 * * * *
  • crontab 每小时执行一次     0 * * * *
  • crontab 每天执行一次       0 0 * * *
  • crontab 每周执行一次       0 0 * * 0
  • crontab 每月执行一次        0 0 1 * *
  • crontab 每年执行一次       0 0 1 1 *