10.2 系统资源的定时调用(使用cron)
10.2.1 crontab简介
可以使用crontab将系统设定在每天、每周和每月的某个时刻自动运行某个命令或者应用程序,实现系统资源的循环定时调用。在不需要人工干预的情况下,还可以设定好将系统执行信息记录在某个文件之中,定期查看这些文件,以了解系统执行情况。可以使用crontab命令来调度例程系统管理任务,使其每日、每周或每月执行一次。
每日crontab系统管理任务可能包括以下内容:
- 从临时目录中删除几天前的文件。
- 执行记账摘要命令。
- 使用df和ps命令捕获系统快照。
- 执行每日安全监视。
- 运行系统备份。
每周crontab系统管理任务可能包括以下内容:
- 重新生成catman数据库以供man-k命令使用。
- 运行fsck-n命令以列出任何磁盘问题。
每月crontab系统管理任务可能包括以下内容:
- 列出在特定月份中未使用的文件。
- 生成每月记账报告。
此外,用户还可以调度crontab命令以执行其他例程系统任务,例如发送提醒和删除备份文件。
crontab仅仅是一个文本文件,可以用任何UNIX编辑器编辑它。它可以包含4种代码行:空行、注释、环境变量设置和命令。
① 空行和注释
文件中的空行和多余的空格被忽略。空行和空格有助于提高crontab的可读性,使crontab组织有序。还可以使用注释对每个作业的时间表和用途加以说明。要想创建注释,只需在一行的开头加上一个井号(#)。
② 环境变量和命令
cron最终使用一个Shell执行每个命令。可以通过环境变量修改或定制Shell的行为。
cron预定义了5个环境变量:
- PATH的默认值是/usr/bin:/bin。
- SHELL预设置为/bin/sh。
- LOGNAME初始化为crontab所有者的用户名。
- HOME设置为crontab所有者的主目录,比如/home/joe。
- MAILTO设置为crontab所有者的名称。
要想修改这些默认值或设置任何变量,只需在crontab中设置适当的环境变量。