介绍

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秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

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

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

新增

新增