cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。cron 假定系统持续运行。如果当某任务被调度时系统不在运行,该任务就不会被执行。要使用 cron 服务,你必须安装了 vixie-cron RPM 软件包,而且必须在运行crond 服务。要判定该软件包是否已安装,使用 rpm -q vixie-cron 命令。要判定该服务是否在运行,使用 /sbin/service crond status 命令。
安装
- yum install vixie-cron cron的主程序;
- yum install crontabs 安装、卸装、或列举用来驱动 cron 守护进程的表格的程序
基本命令和配置
- /sbin/service crond start //启动服务
- /sbin/service crond stop //关闭服务
- /sbin/service crond restart //重启服务
- /sbin/service crond reload //重新载入配置
- 查看crontab服务是否已设置为开机启动,执行命令:ntsysv
- chkconfig --level 35 crond on 加入开机自动启动
- crontab -l 列出当前的crontab任务
- crontab -d 删除当前的crontab任务
- crontab -e (solaris5.8上面是 crontab -r) 编辑一个crontab任务,执行后就会在/var/spool/cron/下面创建对应用户的文件
- crontab filename 以filename做为crontab的任务列表文件并载入
格式
crontab 文件中的行由 6 个字段组成,不同字段间用空格或 tab 键分隔。前 5 个字段指定命令要运行的时间
分钟 (0-59) | |
小时 (0-23) | 0表示0点 |
日期 (1-31) | |
月份 (1-12) | |
星期几(0-6,其中 0 代表星期日) | |
执行的字符串 |
例子
-
每天早上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 即可