系统管理指南:高级管理

自动执行系统任务的方法

可以设置多个要自动执行的系统任务。其中有些任务应该以固定间隔进行。其他任务只需运行一次,可能是在晚间或周末等非高峰时间。

本节包含有关 crontabat 这两个命令的概述信息,使用这两个命令可以调度要自动执行的例程任务。crontab 命令用于调度重复性任务。at 命令则用于调度只执行一次的任务。

下表概括说明了 crontabat 命令,以及可用来控制对这些命令的访问的文件。

表 8–1 命令摘要:调度系统任务

命令 

调度内容 

文件位置 

控制访问的文件 

crontab

固定间隔的多个系统任务 

/var/spool/cron/crontabs

/etc/cron.d/cron.allow/etc/cron.d/cron.deny

at

单个系统任务  

/var/spool/cron/atjobs

/etc/cron.d/at.deny

也可以使用 Solaris Management Console 的调度作业工具来调度例程任务。有关使用和启动 Solaris Management Console 的信息,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

用于调度重复性作业:crontab

可以使用 crontab 命令来调度例程系统管理任务,使其每日、每周或每月执行一次。

每日 crontab 系统管理任务可能包括以下内容:

每周 crontab 系统管理任务可能包括以下内容:

每月 crontab 系统管理任务可能包括以下内容:

此外,用户还可以调度 crontab 命令以执行其他例程系统任务,例如发送提醒和删除备份文件。

有关调度 crontab 作业的逐步说明,请参见如何创建或编辑 crontab 文件

用于调度单个作业:at

通过 at 命令可以调度要在以后执行的作业。该作业可由单个命令或脚本组成。

crontab 类似,使用 at 命令可以调度例程任务的自动执行。但与 crontab 文件不同的是,at 文件只执行一次任务。然后,便从目录中删除这些文件。因此,在运行将输出定向到独立文件中以供以后检查的单个命令或脚本时,at 命令很有用。

提交 at 作业包括键入命令并按照 at 命令语法指定选项来调度执行作业的时间。有关提交 at 作业的更多信息,请参见at 命令的说明

at 命令在 /var/spool/cron/atjobs 目录中存储您运行的命令或脚本以及当前环境变量的副本。at 作业文件名是一个长数字,用于指定该文件在 at 队列中的位置,后跟 .a 扩展名,例如 793962000.a

cron 守护进程在启动时检查 at 作业并侦听是否提交了新作业。cron 守护进程执行 at 作业后,将从 atjobs 目录中删除 at 作业的文件。有关更多信息,请参见 at(1) 手册页。

有关调度 at 作业的逐步说明,请参见如何创建 at 作业