系统管理指南:高级管理

创建和编辑 crontab 文件

创建 crontab 文件的最简单方法是使用 crontab -e 命令。此命令会调用已为系统环境设置的文本编辑器。系统环境的缺省编辑器在 EDITOR 环境变量中定义。如果尚未设置此变量,crontab 命令将使用缺省编辑器 ed。最好选择您熟悉的编辑器。

以下示例说明如何确定是否已定义编辑器,以及如何将 vi 设置为缺省值。


$ which $EDITOR
$ 
$ EDITOR=vi
$ export EDITOR

创建 crontab 文件时,该文件会自动放入 /var/spool/cron/crontabs 目录,并以您的用户名命名。如果具有超级用户权限,则可为其他用户或 root 创建或编辑 crontab 文件。

Procedure如何创建或编辑 crontab 文件

开始之前

如果要创建或编辑属于 root 或其他用户的 crontab 文件,您必须成为超级用户或同等角色。角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

无需成为超级用户,便可编辑自己的 crontab 文件。

  1. 创建新的 crontab 文件,或编辑现有文件。


    $ crontab -e [username]

    其中,username 指定您要为其创建或编辑 crontab 文件的用户帐户的名称。无需具有超级用户权限便可创建自己的 crontab 文件,但如果要为 root 或其他用户创建或编辑 crontab 文件,则必须具有超级用户权限。


    注意 – 注意 –

    如果意外键入了不带选项的 crontab 命令,请按下编辑器的中断字符。使用此字符将退出而不会保存更改。如果保存了更改并退出文件,现有的 crontab 文件将被空文件覆写。


  2. crontab 文件中添加命令行。

    按照crontab 文件项的语法中所述的语法操作。将 crontab 文件放入 /var/spool/cron/crontabs 目录。

  3. 验证 crontab 文件更改。


    # crontab -l [username]

示例 8–1 创建 crontab 文件

以下示例说明如何为其他用户创建 crontab 文件。


# crontab -e jones

添加到新 crontab 文件中的以下命令项将在每个星期日的凌晨 1:00 自动删除用户起始目录中的所有日志文件。由于该命令项不重定向输出,因此将重定向字符添加到 *.log 之后的命令行中。这样可以确保正常执行命令。


# This command helps clean up user accounts.
1 0 * * 0 rm /home/jones/*.log > /dev/null 2>&1

Procedure如何验证 crontab 文件是否存在

  1. 要验证用户的 crontab 文件是否存在,请在 /var/spool/cron/crontabs 目录中使用 ls -l 命令。例如,以下输出说明用户 jonessmithcrontab 文件存在。


    $ ls -l /var/spool/cron/crontabs
    -rw-r--r--  1 root     sys          190 Feb 26 16:23 adm
    -rw-------  1 root     staff        225 Mar  1  9:19 jones
    -rw-r--r--  1 root     root        1063 Feb 26 16:23 lp
    -rw-r--r--  1 root     sys          441 Feb 26 16:25 root
    -rw-------  1 root     staff         60 Mar  1  9:15 smith
    -rw-r--r--  1 root     sys          308 Feb 26 16:23 sys

    使用 crontab -l 命令验证用户的 crontab 文件的内容,如如何显示 crontab 文件中所述。