通常我们需要让电脑在某个时间自动执行任务,这时就得用到定时任务。
win中可以在 附件—系统工具—任务计划程序中进行任务设置,而linux呢,则是要用到crontab命令
用法
crontab(选项)(参数)
选项
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
-e选项在编辑时一般默认使用的是vi。具体文件在/var/spool/cron/目录下,以使用者名字命名的文件
查看/etc/crontab文件可以看到crontab的一些配置
$ cat crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
分别为执行定时任务时使用的shell,环境变量路径,将mail发送给谁(crontab中echo是不会显示的,默认会以mail形式发送给指定用户[资料上这么说,自己没有证实])。
创建的定时任务有如下形式:
minute hour day month week command 顺序:分 时 日 月 周
其中
- minute: 表示分钟,可以是从0到59之间的任何整数。
- hour:表示小时,可以是从0到23之间的任何整数。
- day:表示日期,可以是从1到31之间的任何整数。
- month:表示月份,可以是从1到12之间的任何整数。
- week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
- command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符
- 星号 (*) 代表所有可能出现的值
- 逗号 (,)可以用其隔开的值指定一个范围 eg “1,3,5,7”
- 短杠 (-)可以表示一个整数范围 eg “1-9”
- 斜线 (/)指定时间的间隔频率 如与 (*) 或 (-) 一起使用 eg 分钟一栏 */10 即10分钟一次
crond服务
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond status //查看服务状态