Crontab

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 即可

推荐阅读更多精彩内容