显示标签为“crontab”的博文。显示所有博文
显示标签为“crontab”的博文。显示所有博文

2012年9月27日星期四

Linux用命令crontab设置计划任务

crontab 是 Linux 平台设置计划任务的一个命令。它简单易用,系统已经自带了,不需要你去编译安装。下面就已 Ubuntu 10.10 来简单说明一下它的用法。

在Ubuntu 10.10 终端下输入命令 crontab --help 会出现以下提示:


crontab: invalid option -- '-'

crontab: usage error: unrecognized option
usage: crontab [-u user] file
crontab [-u user] { -e | -l | -r } //命令格式
(default operation is replace, per 1003.2)
-e (edit user's crontab) //编辑用户下的计划任务
-l (list user's crontab) //列出用户下的所有计划任务
-r (delete user's crontab) //删除用户下的所有计划任务
-i (prompt before deleting user's crontab) //在删除计划任务之前弹出提醒




有了上述使用帮助,

我们可先输入:crontab -l 查看下当前用户下的所有计划任务;

再输入:crontab -e 来编辑计划任务,

如果是第一次使用该命令,系统或提示几种编辑器供选择,

选择[3] vim 即可,使用我们常用的vim编辑器来编辑计划任务。



crontab -e 终端界面


选择之后会打开vim,在最后一行有一句注释:



crontab -e 的内容


# m h dom mon dow command

意思是:#分 时 日 月 周 执行命令


前面五个参数格式为:

* 表示任意取值范围内数字 在分钟里*表示0到59的任意数字
- 表示选择区域范围内的数字 3-10表示3-10的任意数字,包含3和10
, 选择数字 2,4,5 选择2,4,5
/ 每多少数字 在分钟里 */2表示每二分钟

所以,如我们想设定一个每5分钟执行的命令,

则输入一行:*/5 * * * * command

crontab同一时间多次执行定时任务的原因

crontab 是 Linux 环境下执行定时任务的一个命令。

由于项目的需求,需要每隔10分钟执行一个计划任务——每10分钟就要运行一个 PHP 脚本。运行的时候却发现在同一时间 PHP 脚本被执行了5次(因为在 PHP 脚本中写了了log,由此知道)。

后来发现是因为 Linux 同时启动了多个 crontab 进程,只要 kill 掉多余的进程就恢复正常了。