JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:高级管理     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

关于本书

1.  管理终端和调制解调器(概述)

2.  设置终端和调制解调器(任务)

3.  使用服务访问工具管理串行端口(任务)

4.  管理系统资源(概述)

5.  显示和更改系统信息(任务)

6.  管理磁盘使用(任务)

7.  管理 UFS 配额(任务)

8.  调度系统任务(任务)

创建和编辑 crontab 文件(任务列表)

自动执行系统任务的方法

用于调度重复性作业:crontab

用于调度单个作业:at

调度重复性系统任务 (cron)

crontab 文件内

cron 守护进程处理调度的方法

crontab 文件项的语法

创建和编辑 crontab 文件

如何创建或编辑 crontab 文件

如何验证 crontab 文件是否存在

显示 crontab 文件

如何显示 crontab 文件

删除 crontab 文件

如何删除 crontab 文件

控制对 crontab 命令的访问

如何拒绝 crontab 命令访问

如何将 crontab 命令访问限制于指定的用户

如何验证受限的 crontab 命令访问

使用 at 命令(任务列表)

调度单个系统任务 (at)

at 命令的说明

控制对 at 命令的访问

如何创建 at 作业

如何显示 at 队列

如何验证 at 作业

如何显示 at 作业

如何删除 at 作业

如何拒绝对 at 命令的访问

如何验证 at 命令访问已被拒绝

9.  管理系统记帐(任务)

10.  系统记帐(参考)

11.  管理系统性能(概述)

12.  管理系统进程(任务)

13.  监视系统性能(任务)

14.  软件问题疑难解答(概述)

15.  管理系统消息

16.  管理核心文件(任务)

17.  管理系统故障转储信息(任务)

18.  各种软件问题的故障排除(任务)

19.  文件访问问题故障排除(任务)

20.  解决 UFS 文件系统不一致问题(任务)

21.  软件包问题故障排除(任务)

索引

调度单个系统任务 (at)

以下各节介绍如何使用 at 命令来执行下列任务:

缺省情况下,用户可以创建、显示和删除自己的 at 作业文件。要访问属于 root 或其他用户的 at 文件,您必须具有超级用户特权。

提交 at 作业时,会为该作业指定作业标识号和 .a 扩展名。此指定将成为该作业的文件名,以及其队列编号。

at 命令的说明

提交 at 作业文件需执行以下步骤:

  1. 调用 at 实用程序并指定命令执行时间。

  2. 键入以后要执行的命令或脚本。


    注 - 如果此命令或脚本的输出很重要,请确保将输出定向到一个文件中,以便以后检查。


例如,以下 at 作业将在 7 月的最后一天接近午夜时删除用户帐户 smithcore 文件。

$ at 11:45pm July 31
at> rm /home/smith/*core*
at> Press Control-d
commands will be executed using /bin/csh
job 933486300.a at Tue Jul 31 23:45:00 2004

控制对 at 命令的访问

您可以设置一个文件来控制对 at 命令的访问,只允许指定的用户创建、删除或显示有关 at 作业的队列信息。控制对 at 命令的访问的文件 /etc/cron.d/at.deny 由用户名列表构成,每个用户名占据一行。此文件中列出的用户不能访问 at 命令。

在 SunOS 软件安装期间创建的 at.deny 文件包含以下用户名:

daemon
bin
smtp
nuucp
listen
nobody
noaccess

使用超级用户特权,您可以编辑 at.deny 文件,以添加要限制其对 at 命令访问的其他用户名。

如何创建 at 作业

  1. 启动 at 实用程序,指定所需的作业执行时间。
    $ at [-m] time [date] 
    -m

    在作业完成后发送邮件。

    time

    指定要调度作业的小时。如果不按 24 小时制指定小时,请添加 ampm。可接受的关键字包括 midnightnoonnow。分钟是可选的选项。

    date

    指定月份的前三个或更多字母、一周中的某日或关键字 todaytomorrow

  2. at 提示符下,键入要执行的命令或脚本,每行一个。

    通过在每行结尾处按回车键,可以键入多个命令。

  3. 按 Ctrl-D 组合键,以退出 at 实用程序并保存 at 作业。

    at 作业将被指定一个队列编号,它也是该作业的文件名。退出 at 实用程序时将显示该编号。

示例 8-7 创建 at 作业

以下示例显示了用户 jones 创建的 at 作业,该作业用于在下午 7:30 删除其备份文件。由于她使用了 -m 选项,因此她会在该作业完成后收到电子邮件。

$ at -m 1930
at> rm /home/jones/*.backup
at> Press Control-D
job 897355800.a at Thu Jul  12 19:30:00 2004

她收到一封确认已执行 at 作业的电子邮件。

Your “at” job “rm /home/jones/*.backup”
completed.

以下示例说明 jones 如何调度在星期六凌晨 4:00 执行的大型 at 作业。该作业输出被定向到名为 big.file 的文件中。

$ at 4 am Saturday
at> sort -r /usr/dict/words > /export/home/jones/big.file

如何显示 at 队列

如何验证 at 作业

如何显示 at 作业

示例 8-8 显示 at 作业

以下示例显示 at -l 命令的输出,该输出提供有关用户已提交的所有作业的状态信息。

$ at -l
897543900.a    Sat Jul 14 23:45:00 2004
897355800.a    Thu Jul 12 19:30:00 2004
897732000.a    Tue Jul 17 04:00:00 2004

以下示例显示使用 at -l 命令指定单个作业时所显示的输出。

$ at -l 897732000.a
897732000.a        Tue Jul 17 04:00:00 2004

如何删除 at 作业

开始之前

成为超级用户或同等角色,以删除属于 root 或其他用户的 at 作业。角色包含授权和具有特权的命令。

无需成为超级用户或承担等效角色,便可删除自己的 at 作业。

  1. 在作业执行之前从队列中删除 at 作业。
    $ at -r [job-id]

    其中,-r job-id 选项指定要删除的作业的标识号。

  2. 使用 at -l(或 atq)命令,验证是否已删除 at 作业。

    at -l 命令显示 at 队列中剩余的作业。不应显示已指定标识号的作业。

    $ at -l [job-id]

示例 8-9 删除 at 作业

在以下示例中,用户要删除计划在 7 月 17 日凌晨 4 点执行的 at 作业。首先,该用户显示 at 队列,以找到作业标识号。然后,用户从 at 队列中删除此作业。最后,该用户验证是否已从队列中删除此作业。

$ at -l
897543900.a    Sat Jul 14 23:45:00 2003
897355800.a    Thu Jul 12 19:30:00 2003
897732000.a    Tue Jul 17 04:00:00 2003
$ at -r 897732000.a
$ at -l 897732000.a
at: 858142000.a: No such file or directory

如何拒绝对 at 命令的访问

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有特权的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置 RBAC(任务列表)"

  2. 编辑 /etc/cron.d/at.deny 文件并添加要禁止其使用 at 命令的用户名,每行一个用户名。
    daemon
    bin
    smtp
    nuucp
    listen
    nobody
    noaccess
    username1
    username2
    username3
    .
    .
    .

示例 8-10 拒绝 at 访问

以下示例显示了一个 at.deny 文件,该文件已被编辑过,因此用户 smithjones 无法访问 at 命令。

$ cat at.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess
jones
smith

如何验证 at 命令访问已被拒绝