JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 でのシステム情報、プロセス、およびパフォーマンスの管理     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

1.  システム情報の管理 (タスク)

2.  システムプロセスの管理 (タスク)

3.  システムパフォーマンスの監視 (タスク)

4.  システムタスクのスケジュール設定 (タスク)

システムタスクを自動的に実行する方法

繰り返されるジョブのスケジューリング (crontab)

1 つのジョブのスケジューリング (at)

システムタスクのスケジュール設定

crontab ファイルの作成と編集 (タスクマップ)

繰り返されるシステムタスクのスケジューリング (cron)

crontab ファイルの内容

cron デーモンのスケジューリング管理

crontab ファイルエントリの構文

crontab ファイルの作成と編集

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

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

crontab ファイルの表示

crontab ファイルを表示する方法

crontab ファイルの削除

crontab ファイルを削除する方法

crontab コマンドの使用制御

crontab コマンドの使用を拒否する方法

crontab コマンドの使用を特定のユーザーに限定する方法

crontab コマンドの使用制限を確認する方法

at コマンドを使用したタスクのスケジューリング

at コマンドの使用 (タスクマップ)

1 つのシステムタスクのスケジューリング (at)

at コマンドの説明

at コマンドの使用制御

at ジョブを作成する方法

at 待ち行列を表示する方法

at ジョブを確認する方法

at ジョブを表示する方法

at ジョブを削除する方法

at コマンドの使用を拒否する方法

at コマンドの使用の拒否を確認する方法

5.  システムコンソール、端末デバイス、および電源サービスの管理 (タスク)

索引

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

システムタスクのスケジュール設定

このセクションでは、crontab ファイルを使用してシステムタスクをスケジュールするタスクについて説明します。

crontab ファイルの作成と編集 (タスクマップ)

タスク
説明
参照先
crontab ファイルを作成または編集する
crontab -e コマンドを使用し、crontab ファイルを作成または編集する
crontab ファイルが存在するかどうかを確認する
ls -l コマンドを使用し、/var/spool/cron/crontabs ファイルの内容を確認する
crontabファイルを表示する
ls -l コマンドを使用し、 crontab ファイルを表示する
crontab ファイルを削除する
crontab ファイルには、アクセス制限がかけられている。したがって、crontab ファイルを削除するには、rm ではなく crontab -r コマンドを使用する
crontab の使用を拒否する
ユーザーによる crontab コマンドの使用を拒否するには、/etc/cron.d/cron.deny ファイルを編集してユーザー名を追加する
crontab の使用を特定のユーザーに限定する
crontab コマンドのユーザーの使用を許可するには、/etc/cron.d/cron.allow ファイルにユーザー名を追加する

繰り返されるシステムタスクのスケジューリング (cron)

以降のセクションで、crontab ファイルをどのように作成、編集、表示、削除するか、さらに、それらのファイルの使用をどのように制御するかを説明します。

crontab ファイルの内容

cron デーモンは、各 crontab ファイル内にあるコマンドに従ってシステムタスクをスケジュールします。crontab ファイルには、それぞれ一定間隔で実行されるコマンドが 1 行に 1 つずつ入っています。各行の先頭は cron デーモンが各コマンドを実行する日時情報です。

たとえば、SunOS ソフトウェアのインストール時に root という名前の crontab ファイルが提供されます。このファイルの内容には、次のコマンド行が含まれています。

10 3 * * * /usr/sbin/logadm (1)
15 3 * * 0 /usr/lib/fs/nfs/nfsfind (2)
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 (3)
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean (4)

これらのコマンド行の出力について次に説明します。

crontab ファイル内のコマンド行の構文の詳細は、crontab ファイルエントリの構文」を参照してください。

crontab ファイルは /var/spool/cron/crontabs ディレクトリに保存されます。SunOS ソフトウェアのインストール時には、root 以外にもいくつかの crontab ファイルが提供されます。次の表を参照してください。

表 4-2 デフォルトの crontab ファイル

crontab ファイル
機能
adm
アカウンティング
root
一般的なシステム機能とファイルシステムの整理
sys
パフォーマンスデータの収集
uucp
一般的な uucp の整理

デフォルトの crontab ファイルの他に、ユーザーは crontab ファイルを作成してユーザー自身のシステムタスクをスケジュールできます。その他の crontab ファイルは、作成したユーザーのアカウントに基づいて、bobmarysmithjones などのように命名されます。

root またはほかのユーザーの crontab ファイルを使用するには、スーパーユーザーの特権が必要です。

crontab ファイルの作成、編集、表示、削除の手順については、以降のセクションで説明します。

cron デーモンのスケジューリング管理

cron デーモンは、crontab コマンドの自動スケジューリングを管理します。cron デーモンは、/var/spool/cron/crontab ディレクトリに crontab ファイルがあるかどうかをチェックします。

cron デーモンは、起動時に次のタスクを実行します。

ほとんど同様に、cron デーモンは at ファイルのスケジューリングを制御します。これらのファイルは /var/spool/cron/atjobs ディレクトリに格納されています。 cron デーモンは、実行された at ジョブに関する crontab コマンドからの通知も待機します。

crontab ファイルエントリの構文

crontab ファイルは、1 行に 1 つのコマンドが入っており、各コマンド行の最初の 5 つのフィールドでは、コマンドが実行される時間を指定します。これら 5 つのフィールドを、次の表で説明します。これらのフィールドはスペース (空白) で区切られます。

表 4-3 crontab 時間フィールドの値

時間フィールド
0-59
0-23
1-31
1-12
曜日
0 - 6 (0 は日曜日)

次に、crontab 時間フィールドで特殊文字を使用する際のガイドラインを示します。

たとえば、次の crontab コマンドエントリは、毎月 1 日と 15 日の午後 4 時に、ユーザーのコンソールウィンドウに注意を促すメッセージを表示します。

0 16 1,15 * * echo Timesheets Due > /dev/console

crontab ファイル内の各コマンドは、長くても 1 行内に入れる必要があります。crontab ファイルは余分なキャリッジリターンを認識しません。crontab のエントリとコマンドオプションの詳細は、crontab(1) のマニュアルページを参照してください。

crontab ファイルの作成と編集

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

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

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

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

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

始める前に

root またはほかのユーザーに属する crontab ファイルを作成または編集する場合は、root 役割になる必要があります。『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

自分の crontab ファイルを編集する場合は、root 役割になる必要はありません。

  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]

例 4-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

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

crontab ファイルの表示

crontab -l コマンドは、cat コマンドが他のファイルタイプの内容を表示するのとほぼ同様に、crontab ファイルの内容を表示します。このコマンドを使用するために、(crontab ファイルが入っている) /var/spool/cron/crontabs ディレクトリに移動する必要はありません。

デフォルトでは、crontab -l コマンドは自分自身の crontab ファイルを表示します。他のユーザーの crontab ファイルは、スーパーユーザーでなければ表示できません。

crontab ファイルを表示する方法

始める前に

root またはほかのユーザーに属する crontab ファイルを表示するには、root 役割になります。『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

自分の crontab ファイルを表示する場合は、root 役割になる必要はありません。

例 4-2 crontab ファイルを表示する

次の例は、crontab -l コマンドを使用してユーザーのデフォルトの crontab ファイルを表示する方法を示します。

$ crontab -l
13 13 * * * chmod g+w /home1/documents/*.book > /dev/null 2>&1

例 4-3 デフォルトの rootcrontab ファイルを表示する

次の例は、デフォルトの rootcrontab ファイルを表示する方法を示します。

$ suPassword:

# crontab -l
#ident  "@(#)root       1.19    98/07/06 SMI"   /* SVr4.0 1.1.3.1       */
#
# The root crontab should be used to perform accounting data collection.
#
#
10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___

例 4-4 他のユーザーの crontab ファイルを表示する

次の例は、他のユーザーの crontab ファイルを表示する方法を示します。

$ su
Password:
# crontab -l jones
13 13 * * * cp /home/jones/work_files /usr/backup/. > /dev/null 2>&1

crontab ファイルの削除

デフォルトでは、rm コマンドを使用して誤って crontab ファイルを削除してしまうことがないように、crontab ファイルは保護されています。crontab ファイルを削除する場合は、rm コマンドではなく crontab -r コマンドを使用してください。

デフォルトでは、crontab -r コマンドは自分自身の crontab ファイルを削除します。

このコマンドを使用するために、/var/spool/cron/crontabs ディレクトリ (crontab ファイルが入っている) に移動する必要はありません。

crontab ファイルを削除する方法

始める前に

root またはほかのユーザーに属する crontab ファイルを削除するには、root 役割になります。役割には、認証と特権コマンドが含まれます。『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

自分の crontab ファイルを削除する場合は、root 役割になる必要はありません。

  1. 次のように入力して、crontab ファイルを削除します。
    # crontab -r [username]

    username は、crontab ファイルを削除するユーザーのアカウント名を指定します。他のユーザーの crontab ファイルを削除するには、スーパーユーザーの権限が必要です。


    注意

    注意 - 誤ってオプションを指定しないで crontab コマンドを入力した場合は、使用しているエディタの中断文字を入力してください。この文字を入力すると、変更結果を保存せずに crontab コマンドを終了できます。この場合に変更結果を保存してファイルを終了すると、既存の crontab ファイルが空のファイルで上書きされます。


  2. crontab ファイルが削除されたことを確認します。
    # ls /var/spool/cron/crontabs

例 4-5 crontab ファイルを削除する

次の例では、ユーザー smithcrontab -r コマンドを使用して自分の crontab ファイルを削除します。

$ ls /var/spool/cron/crontabs
adm     jones     root    smith    sys     uucp
$ crontab -r
$ ls /var/spool/cron/crontabs
adm     jones    root    sys    uucp

crontab コマンドの使用制御

/etc/cron.d ディレクトリ内の 2 つのファイルを使用して、crontab コマンドの使用を制御できます。 これらのファイルは cron.deny および cron.allow です。これらのファイルによって、指定したユーザーだけが、それぞれ自分の crontab ファイルの作成、編集、表示、または削除などの crontab コマンドのタスクを実行できるようにします。

cron.deny ファイルおよび cron.allow ファイルは、それぞれ 1 行に 1 ユーザー名が入ったリストからなります。

これらの使用制御用ファイルは、次のように連携して機能を果たします。

cron.denycron.allow ファイルを編集または作成するには、スーパーユーザーの権限が必要です。

SunOS ソフトウェアのインストール時に作成される cron.deny ファイルには、次のユーザー名が含まれます。

$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess

デフォルトの cron.deny ファイル内のユーザー名は、いずれも crontab コマンドを使用できません。このファイルを編集して、crontab コマンドの使用を拒否したいユーザー名を追加できます。

cron.allow のデフォルトファイルは提供されません。つまり、Oracle Solaris ソフトウェアをインストールした直後は、すべてのユーザー (デフォルトの cron.deny ファイルにリストされているユーザーを除く) が crontab コマンドを使用できます。cron.allow ファイルを作成した場合、そのユーザーだけが crontab コマンドを使用できます。

crontab コマンドの使用を拒否する方法

  1. root 役割になります。

    『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

    $ su -
    Password:
    #
  2. /etc/cron.d/cron.deny ファイルを編集し、ユーザー名を 1 行に 1 つずつ追加します。crontab コマンドの使用を拒否するユーザーを入れます。
    daemon
    bin
    smtp
    nuucp
    listen
    nobody
    noaccess
    username1
    username2
    username3
    .
    .
    .
  3. /etc/cron.d/cron.deny ファイルに新しいエントリが含まれているか確認します。
    # cat /etc/cron.d/cron.deny
    daemon
    bin
    nuucp
    listen
    nobody
    noaccess

crontab コマンドの使用を特定のユーザーに限定する方法

  1. root 役割になります。

    『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. /etc/cron.d/cron.allow ファイルを作成します。
  3. root 役割を cron.allow ファイルに追加します。

    このファイルに root を追加しないと、スーパーユーザーの crontab コマンドの使用が拒否されます。

  4. ユーザー名を 1 行に 1 つずつ追加します。

    crontab コマンドの使用を許可するユーザーを入れます。

    root
    username1
    username2
    username3
    .
    .
    .

例 4-6 crontab コマンドの使用を特定のユーザーに限定する

次は、ユーザー jonestemp、および visitorcrontab コマンドを使用させない cron.deny ファイルの例です。

$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess
jones
temp
visitor

次は、cron.allow ファイルの例です。ユーザー rootjones、および smith だけが、crontab コマンドを使用できます。

$ cat /etc/cron.d/cron.allow
root
jones
smith

crontab コマンドの使用制限を確認する方法

特定のユーザーが crontab コマンドを使用できるかどうかを確認するには、そのユーザーのアカウントでログインして crontab -l コマンドを使用します。

$ crontab -l

そのユーザーが crontab を使用できて、すでに crontab ファイルを作成している場合は、そのファイルが表示されます。そのユーザーが crontab コマンドを使用できるが、crontab ファイルがない場合は、次のようなメッセージが表示されます。

crontab: can't open your crontab file

このユーザーは、cron.allow ファイル (が存在する場合) に含まれているか、cron.deny ファイルに含まれていません。

ユーザーが crontab コマンドを使用できない場合は、上記の crontab ファイルの有無にかかわらず、次のメッセージが表示されます。

crontab: you are not authorized to use cron. Sorry.

このメッセージは、ユーザーが cron.allow ファイル (が存在する場合) に含まれていないか、cron.deny ファイルに含まれていることを意味します。