Solaris のシステム管理 (上級編)

crontab ファイルの作成と編集

crontab ファイルを作成するもっとも簡単な方法は、crontab -e コマンドを使用することです。このコマンドは、システム環境で指定されたテキストエディタを起動します。システム環境のデフォルトのエディタは、EDITOR 環境変数で定義されます。この環境変数が設定されていない場合は、crontab コマンドはデフォルトのエディタ ed を使用します。あらかじめ、使い慣れたエディタを選択しておく必要があります。

次の例は、エディタが定義されているかどうかを確認する方法と、viをデフォルトのエディタとして設定する方法を示しています。


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

crontab ファイルを作成すると、自動的に /var/spool/cron/crontabs ディレクトリ内に格納され、作成者のユーザー名で命名されます。スーパーユーザー特権があれば、他のユーザーや rootcrontab ファイルを作成または編集できます。

Procedurecrontab ファイルを作成または編集する方法

始める前に

root または他のユーザーに属する crontab ファイルを作成または編集する場合は、スーパーユーザーになるか、同等の役割になります。役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

自分の crontab ファイルを編集する場合は、スーパーユーザーになる必要はありません。

  1. 新しい crontab ファイルを作成するか、既存の crontab ファイルを編集します。


    $ crontab -e [username]

    username は、crontab ファイルを作成または編集するユーザーのアカウント名を指定します。自分の crontab ファイルを作成するにはスーパーユーザー特権は必要ありませんが、root または別のユーザーの crontab ファイルを作成したり編集したりするには、スーパーユーザー特権が必要です。


    注意 – 注意 –

    誤ってオプションを指定しないで 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 時にユーザーのホームディレクトリからすべてのログファイルが自動的に削除されます。このコマンドエントリは出力先を変更しないので、出力先変更文字がコマンド行の *.log のあとに追加されます。このためコマンドが正しく実行されます。


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

Procedurecrontab ファイルを確認する方法

  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 ファイルの内容を確認するには、 crontab -l コマンドを使用します。crontab ファイルを表示する方法」を参照してください。