天天看点

【简记】Linux 计划任务 Crontab

cron 是 UNIX, SOLARIS,LINUX 下的一个十分有用的工具。通过 cron 脚本能使计划任务定期地在系统后台自动运行。

<code>crontab -e</code>  – 编辑该用户的 crontab,当指定 crontab 不存在时新建。

<code>crontab -l</code> – 列出该用户的 crontab。

<code>crontab -r</code> – 删除该用户的 crontab。

<code>crontab -u&lt;用户名称&gt;</code> – 指定要设定 crontab 的用户名称。

重启命令:

Crontab 字段与允许的值 (Linux Crontab)

cron 的基本用法是在特定的时间执行一项任务,如下是 6 月 10 上午 8:30 执行 Full backup shell script。 要注意的是时间字段采用的是 24 小时制,如果是下午 8 点,则改写为 20 点

<code>30 08 10 06 * /home/ramesh/full-backup</code>

30 – 第 30 分钟

08 – 早上 8 点

10 – 10 号

06 – 第 6 个月 (6 月)

* – 一周的任何一天

下面的增量备份脚本每天执行两次。

每天于 11:00, 16:00 执行,逗号两侧的时间都会执行。

<code>00 11,16 * * * /home/ramesh/bin/incremental-backup</code>

00 – 第 0 分钟 (每小时开时)

11,16 – 早上 11 点与下午 4 点

* – 每天

* – 每个月

下面这个例子是每天 9:00-16:00 检查数据库状态(包括周六)

<code>00 09-18 * * * /home/ramesh/bin/check-db-status</code>

09-18 – 9 点, 10 点, 11 点, 12 点, 下午 1 点, 下午 2 点, 下午 3 点, 下午 4 点, 下午 5 点, 下午 6 点

如果只想工作日执行此操作

<code>00 09-18 * * 1-5 /home/ramesh/bin/check-db-status</code>

1-5 – 周一, 周二, 周三, 周四和周五 (工作日)

理论情况下,没有每分钟都要执行的 shell,但下面这个例子,让我们更好的了解 crontab

<code>*</code> 代表着所有可能取到的值,除了直接用 * 外,下面的几个例子也较为常用

当指定 <code>*/5</code> 在分钟字段,代表每五分钟。

当指定 <code>0-10/2</code> 在分钟字段,代表在前十分钟的每两分钟

上面的例子对于其它四个字段同样试用

有一些特殊的例子,可以用关键字替代上述五个字段 <code>– reboot, midnight, yearly, hourly</code>

Table: Cron special keywords and its meaning

下面的例子将在每一年的 1 月 1 日 0:00 执行

下面的例子将在每月 1 日 0:00 执行

下面的例子将在每天 0:00 执行

默认情况下,crontab 将向布置定时任务的管理员发送邮件,如果想重定向此用户,添加并更新 MAIL

如果不想任何人接收,则直接将 MAIL 置空

无法安排每秒执行,因为最小处理单元是分钟,另一方面,没有什么理由让我们每秒都执行一任务

上面的例子都是用绝对的路径

如果你想用相对的路径,设置环境变量可以在 crontab 增加

除了直接编辑外,你也可以先在一个文件中编辑好任务,再导入

应用时要注意,此操作会删除原有的cron任务

Linux 计划任务之crontab

Linux查看当前存在的计划任务命令是什么?

查看所有用户的crontab任务

Linux crontab 命令详解(含配置文件路径)

linux计划任务之crontab