介绍

cron守护进程是linux内建的用于执行定时任务的进程. cron会读取crontab(cron table)文件的内容并执行里面的任务.

通过使用一些特定的语法, 你可以配置定时任务并且让cron进程执行.

这篇文章就是告诉大家如何配置cron.

前提准备

  • 一个运行的linux系统
  • 能使用命令行或图形化界面操作linux系统
  • 拥有一个root权限的账户

基础的crontab语法

cron读取crontab的文件内容进行执行, 这个文件使用了一些特殊的语法结构.

为了能够设置cron job, 我们需要明白组成这些语法的基本结构. 下面就是一个基础结构:

a b c d e /directory/command [output]

根据上面的结构, 我们可以发现cron命令的一些特征:

  1. 前五个字段a b c d e决定了执行的时间和循环周期
  2. 第6个字段/directory/command定义了我们要运行的脚本存放的位置
  3. 第七个字段output是一个可选项, 定义了当任务完成后如何现实结果.

cron任务的时间格式

前五个字段是用数字来表示的, 并且用空格来分割, 下面这张表格概括了可能用到的时间格式:

字段

可能的值

语法

描述

[a] – 分钟

0 – 59

7 * * * *

每小时的第七分钟就执行

[b] – 小时

0 – 23

0 7 * * *

每天的早上7点0分执行

[c] – 天

1 – 31

0 0 7 * *

每月的第7天0时0分执行

[d] – 月

1-12

0 0 0 7 *

7月份0天0时0分执行

[e] – 星期几

0 - 6

0 0 * * 0

每个星期天0时0分执行

需要执行的命令

一般代表的是一个可执行文件存放的位置, 例如:

/root/backup.sh

输出结果(可选)

默认情况下, cron执行完任务后, 会发送一封邮件给任务的拥有者, 这样可以方便追踪任务进度. 但是很要记住, 很可能会把你的收件箱填满.

所以我们可以阻止cron发送邮件给我们, 来防止我们的邮箱爆炸. 使用>/dev/null 2>&1命令, 例如:

* * * * * directory/command >/dev/null 2>&1

使用操作符(可选)

为了提高效率, cron语法也可以使用操作符来操作:

  • 星号(*)代表所有值, * * * * 7 这条命令就是告诉cron, 任务在所有月份的每周7的每分钟都执行
  • 逗号(,)可以用来分割不同的值 * 1,2 * * * 这条命令表示每天1,2小时每分钟都执行
  • 横杠(-)用来表示一个取值范围, * 1-7 * * *这条命令表示每天1,2,3,4,5,6,7小时的每分钟都执行
  • 斜杠(/)表示间隔的执行, */2 * * * * 这条命令表示每2分钟执行一次, 0 */3 * * *这条命令表示每隔3小时0分钟执行

让我们来设置一个定时任务吧

如果要配置定时任务, 我们可以用自己喜欢的编辑器打开crontab文件

怎么编辑crontab文件呢?

可以使用下面的命令为当前用户来编辑定时任务

crontab -e

你可以添加任意多个定时任务, 但是记住每行代表一个任务, 如果你使用换行符, 就当我没说话.

当添加完任务退出后, cron守护进程就会自动读取crontab的任务, 然后开始执行, 我们不必重新启动cron进程, 因为它很智能.

怎么为其他用户使用定时任务呢?

可以使用下面的命令来指定需要执行的用户名

crontab –u other_username –e

定时任务的演示

下面这个定时任务是告诉大家, 每月的第一天如果是周四, 那么早上两点钟每分钟都执行一次/root/backup.sh脚本

* 2 1 * 4 /root/backup.sh

下面表格有更多的任务演示:

定时任务

命令解释

* * * * * /root/backup.sh

每分钟执行一次任务

30 * * * * /root/backup.sh

每30分钟执行任务

0 * * * */root/backup.sh

每小时0分执行任务

0 0 * * * /root/backup.sh

每天的0时0分执行任务

0 2 * * * /root/backup.sh

每天的早上2点执行任务

0 0 1 * * /root/backup.sh

每月的第一天0时0分执行任务

0 0 15 * * /root/backup.sh

每月的第十五天0时0分执行任务

0 0 0 12 * /root/backup.sh

12月的0天0时0分执行任务

0 0 * * 6 /root/backup.sh

每个星期6的0时0分执行任务

查看已有的定时任务

crontab –l

结尾

经过上面的学习, 我们应该很清楚如何设置cron的定时任务了, 可喜可贺.

THE END
开启精彩搜索

热门搜索

暂无

历史搜索

用户名/邮箱/手机号
密码
用户名
密码
重复密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
注册
找回密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

2024年10月

新增

新增

新增

新增

新增

新增

新增

新增

新增

新增