`

Linux crontab 命令格式与详细例子

 
阅读更多

cron用法说明

cron的用法老是记不住,索性写下来备忘。下文内容大部分是根据《Cron Help Guide》翻译而来,有些部分是自己加上的。

全文如下:

cron来源于希腊单词chronos(意为“时间”),是linux系统下一个自动执行指定任务的程序。例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行。

服务的启动和停止

cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:

/sbin/service crond start
/sbin/service crond stop
/sbin/service crond restart
/sbin/service crond reload

以上1-4行分别为启动、停止、重启服务和重新加载配置。

要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可。

查看、编辑和删除

cron把命令行保存在crontab(cron table)文件里,这个文件通常在 /etc 目录下。每个系统用户都可以有自己的crontab(在 /var/spool/cron/ 下)。要查看当前用户的crontab,输入 crontab -l;要编辑crontab,输入 crontab -e;要删除crontab,输入 crontab -r。如当前是root身份,要查看/编辑/删除/某用户的crontab,只需在相应的命令后加上 -u USERNAME(如 crontab -e -u USERNAME)即可。crontab文件的默认编辑器是vi,可以输入 export VISUAL=’editor’ 更改默认编辑器。

cron服务每分钟不仅要读一次 /var/spool/cron 目录内的所有文件,还需要读一次 /etc/crontab 文件。配置这个文件也能让cron执行任务。使用crontab命令是对用户级任务的配置,而编辑 /etc/crontab 文件是对系统级任务的配置。

语法说明

以下是两个cron语句的例子(在 /etc/crontab 文件里)。前者用来晚间备份 /etc 目录,后者运行Analog程序处理服务器的统计信息。

 

基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

crontab文件的一些例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache

 

名称 : crontab

使用权限 : 所有使用者

使用方式 :

crontab file [-u user]-用指定的文件替代目前的crontab。

crontab-[-u user]-用标准输入替代目前的crontab.

crontab-1[user]-列出用户目前的crontab.

crontab-e[user]-编辑用户目前的crontab.

crontab-d[user]-删除用户目前的crontab.

crontab-c dir- 指定crontab的目录。

crontab文件的格式:M H D m d cmd.

 

M: 分钟(0-59)。

H:小时(0-23)。

D:天(1-31)。

m: 月(1-12)。

d: 一星期内的天(0~6,0为星期天)。

cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量

说明 :

crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定

user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设

定自己的时程表。

 

 

参数 :

crontab -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数

来指定使用那个文字编辑器(比如说 setenv VISUAL joe)

crontab -r : 删除目前的时程表

crontab -l : 列出目前的时程表

crontab file [-u user]-用指定的文件替代目前的crontab。

时程表的格式如下 :

f1 f2 f3 f4 f5 program

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执

行的程序。

当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推

当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推

当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推

当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推

使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。

例子 :

#每天早上7点执行一次 /bin/ls :

0 7 * * * /bin/ls

在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :

0 6-12/3 * 12 * /usr/bin/backup

周一到周五每天下午 5:00 寄一封信给 alex@domain.name :

0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"

20 0-23/2 * * * echo "haha"

注意 :

当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之

后加上 > /dev/null 2>&1 即可

 

例子2 :

#每天早上6点10分

10 6 * * * date

#每两个小时

0 */2 * * * date

#晚上11点到早上8点之间每两个小时,早上8点

0 23-7/2,8 * * * date

#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * mon-wed date

#1月份日早上4点

0 4 1 jan * date

范例

$crontab -l 列出用户目前的crontab.

 

分享到:
评论

相关推荐

    crontab命令格式与例子

    ### crontab命令格式与例子解析 #### 一、crontab简介 `crontab` 是 Linux 和 Unix-like 操作系统中一个非常重要的工具,用于设置周期性执行的任务。通过编写 crontab 文件(cron job),用户可以指定某个脚本或...

    Linux crontab 命令格式.docx

    Linux crontab 命令格式详解 Linux 中的 crontab 命令是一种定时任务管理工具,允许用户在固定时间或固定间隔执行程序。crontab 命令的基本格式为:`* * * * * command`,其中每个星号 (`*`) 代表不同的时间单位,...

    linux下crontab命令

    下面是 Crontab 命令的详细介绍: 语法 Crontab 命令的语法如下:crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File] 参数 * -e [UserName]:执行文字编辑器来设定时程表,内定的文字编辑...

    linux crontab 详解

    #### 一、Cron与Crontab简介 在Linux系统中,`cron` 是一个后台服务程序(daemon),用于调度周期性任务。它按照预定的时间间隔执行用户定义的任务,例如运行脚本或执行命令等。`crontab` 则是管理这些定时任务的...

    Linux学堂 Crontab命令的实用方法

    Crontab命令是Linux操作系统中用于管理定时任务的重要工具,它允许用户设置周期性被执行的任务。这些任务可以是系统维护、数据备份或是其他自动化任务。Crontab命令提供了方便的方式来创建、查看和删除这些定时任务...

    linuxcrontab定时触发命令.pdf

    Linux下的crontab命令是一个强大的任务调度工具,用于在特定时间自动执行命令或者脚本,这对于系统维护和自动化工作流程非常有用。以下是关于crontab的一些详细知识点: 1. **crontab命令**:crontab是cron table的...

    linux 定时任务 crontab 详细解释

    ### Linux定时任务Crontab详解 ...总之,Cron服务及其`crontab`命令是Linux系统中非常强大的工具,合理利用它们可以极大地提高系统的自动化水平。希望本文能够帮助读者更好地理解和使用Cron作业。

    crontab格式详解

    crontab 是 Linux 中的一个命令,用于让用户在固定时间或固定间隔执行程序。crontab 文件的格式为:M H D m d cmd,其中 M 代表分钟(0-59),H 代表小时(0-23),D 代表天(1-31),m 代表月(1-12),d 代表星期...

    linux crontab 实现每秒执行的实例

    `Linux crontab` 是一个强大的任务调度命令,用于在特定的时间间隔或特定时间执行自动化任务。然而,标准的 `crontab` 配置并不能支持每秒执行任务,因为其最小的时间单位是分钟。但通过一些技巧,我们可以实现每秒...

    celery+ rabbitMq + python linux 下 例子 crontab例子

    标题 "celery+ rabbitMq + python linux 下 例子 crontab例子" 涉及的是在Linux环境下使用Python的Celery分布式任务队列和RabbitMQ消息中间件结合使用,以及如何配合crontab进行定时任务的设置。下面将详细讲解这些...

    aix下crontab命令.rar

    2. **环境变量**:与Linux不同,AIX的cron不自动加载用户的`.bash_profile`或`.profile`。因此,如果脚本依赖于特定的环境变量,需要在cron作业中显式设置它们。 3. **日志记录**:AIX的cron作业的日志通常存储在`/...

    Linux命令下crontab命令

    Linux中的`crontab`命令是一个非常重要的工具,它用于管理系统的定时任务,这些任务由守护进程`cron`执行。`cron`是一个时间调度服务,它会在特定的时间间隔执行预先设定的任务,这对于自动化日常维护工作或者定时...

    crontab格式解析cpp源码

    `crontab` 是 Linux 系统中一个用于设置周期性被执行任务的命令,而 `cpp` 源码则是用 C++ 编程语言编写的程序代码。在这个场景下,"crontab 格式解析部分的cpp源码"指的是实现对 `crontab` 文件格式解析功能的 C++ ...

    crontab 详细用法 定时任务.pdf

    下面例子与上面的例子效果一样: 59 11 * * 1-5 /root/bin/backup.sh 3. 每 5 分钟运行一次命令 */5 * * * * /root/bin/check-status.sh 4. 每个月的第一天 1:10 p.m 运行 10 13 1 * * /root/bin/full-backup....

    Suse linux常用命令

    - **SUSE Linux 常用命令**:此部分详细介绍了一系列在 SUSE Linux 环境下常用的命令,这些命令对于系统管理员来说至关重要。 - **Novell 相关服务停止和启动命令**:这部分将涉及如何管理 Novell 相关的服务,例如...

    Linux 下的 crontab知识点介绍.docx

    crontab 文件的语法规则是,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段。时间设定段包括 minute、hour、day、month、week 五个字段,...

    Linux中定时计划任务crontab使用实例linux操作系统电脑资料.doc

    Linux 中的定时计划任务 crontab 使用实例 Linux 中的定时计划任务 crontab 是一个非常有用的功能,它允许用户在指定的时间执行特定的任务。crontab 是一个 daemon 程序,它会在后台运行,并根据用户的设置来执行...

    Linux用crontab例行工作安排.docx

    2. **crontab命令解析** `crontab`的语法结构由五个字段组成,分别代表分钟、小时、日期、月份和星期,每个字段的取值范围都有特定限制,最后是需要执行的命令。例如: ``` 0 0 * * 1-5 cd /home/hiperry; ./...

Global site tag (gtag.js) - Google Analytics