像大多数 Linux 用户一样,您可能会发现需要安排重复性任务在特定时间运行。这些任务可以频繁到每分钟一次,也可以不频繁到每年一次。这种调度可以使用 “cron” 工具来完成。
Linux 中实现的 cron 工具与其他 Unix 实现中可用的工具非常相似。然而,Red Hat 采用了与 Linux 的其他发行版中通常不同的任务调度方式。与其他发行版一样,调度信息放置在系统 “crontab” 文件中(位于 “/etc/” 目录中),使用以下格式
minute hour day month year command |
您可以将每个时间组件指定为整数(例如,1 到 12 代表一月到十二月),或者将一个或多个组件指定为 “*” 字符,这些字符将被视为通配符(例如,月份组件中的 * 表示命令将在每个月的给定日期和时间运行。以下是一些示例
# Mail the system logs at 4:30pm every June 15th. 30 16 15 06 * for x in /var/log/*; do cat ${x} | mail postmaster; done # Inform the administrator, at midnight, of the changing seasons. 00 00 20 04 * echo 'Woohoo, spring is here!' 00 00 20 06 * echo 'Yeah, summer has arrived, time to hit the beach!' 00 00 20 10 * echo 'Fall has arrived. Get those jackets out. :-(' 00 00 20 12 * echo 'Time for 5 months of misery. ;-(' |
请注意,将输出生成到标准输出(即终端)的命令,例如上面使用 “echo” 的示例,它们的输出将通过邮件发送到 “root” 帐户。如果您想避免这种情况,只需将输出管道传输到空设备,如下所示
00 06 * * * echo 'I bug the system administrator daily at 6:00am!' >/dev/null |
除了标准的 “crontab” 条目之外,Red Hat 还添加了几个目录
/etc/cron.hourly/ /etc/cron.daily/ /etc/cron.weekly/ |
顾名思义,可执行文件可以放置在这些目录中的任何一个中,并将按小时、每天或每周执行。这节省了设置频繁任务的一些时间;只需将可执行脚本或程序(或指向存储在其他位置的脚本或程序的符号链接)放置在相应的目录中并忘记它即可。