【奇技淫巧】Linux | 时光之主-我们重复重复又重复crontab


theme: condensed-night-purple

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前几篇文章有讲到Linux系统中关于时间的一些操作命令,包括dateatsleep等,这篇文章来讲关于时间的最后一个命令,那就是终极大杀器crontab

一、基础概念

crontab其实就是一个命令,一个很强大的命令,用来定时执行程序,所谓定时,就是我们可以重复重复又重复的执行,比如每小时,每分钟,每秒,每天某个时刻等等。

其原理是读取和修改一个名为crontab的文件。这个而文件中包含了需要定时执行的程序的列表,以及重复执行的时刻。

实际上,对于crontab包含两个命令,一个叫crontab,这个命令用于修改crontab的文件,另一个叫cron,用户实际执行定时的程序。

而且需要注意的是对于每一个用户,其都有一个单独的crontab的文件,进行了用户级别的隔离。

二、基础使用

使用前,确保已经安装,如果未安装,采用以下的命令。

```

centos install

$sudo yum install vixie-cron crontabs $chkconfig crond on $service crond start

Debian install

$sudp apt install cron $service cron restart ```

安装完成后可进行简单操作。

```

显示crontab文件

$crontab -l ```

输出内容如下:

image-1.png

因为这是一台新的服务器,我还没有使用过crontab命令,所以并没有这个文件。

没有这个文件,我们就来创建这个文件。

```

创建,编辑crontab 文件

$crontab -e ```

编辑这个文件的内容,填写的每一条定时任务,都需要遵守下面的语法规则。

```

m h dom mon dow command

x x x x x command ```

  • 第一个x:代表分钟(0-59)
  • 第二个x:代表小时(0-23)
  • 第三个x:代表日(1-31)
  • 第四个x:代表月份(1-12)
  • 第五个x:代表星期几(0-6,星期日是0)
  • command: 那就是需要执行的命令

是不是感觉没那么难,另外需要注意的是,如果前五个x不想填任何值,可以使用星号(*) 填充,其表示任何值。

还有另外一点,如果不想执行某条任务,再前面加 #号注释保存文件即可。

输出命令进入编辑状态

$crontab -e

在文件中输入内容

10 21 * * * touch ~/new_file

然后保存文件,控制台的打印如下。

image-2.png 意思是安装了新的crontab文件。

那如果不想执行这个任务怎么办?第一可以按照上面的方式在任务前加#号处理,或者是直接删除crontab文件。

```

删除crontab文件

$crontab -r ```

这些是crontab最常见的使用,更多见帮助手册。

三、更多用法

48 * * * * command 0 0 * * 2 command 30 5 1-16 * * command 0 0 * * 1,3,5 command 0 */4 * * * command */5 * * * 1-4 command

那么问题来了,上面的定时任务是如何执行的呢?欢迎留言区留下你的答案!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值