nischttl コマンドは、名前空間内のオブジェクトまたはエントリの生存期間値を変更します。キャッシュマネージャは、この生存期間値を使って、キャッシュエントリをいつ期限切れにするかを決めます。生存期間を指定するには、合計秒数か、日、時間、分、秒の組み合わせのいずれかを使います。
オブジェクトまたはエントリに割り当てる生存期間値は、オブジェクトの安定性に左右されます。よく変化するオブジェクトの場合、生存期間値を低くします。安定したオブジェクトの場合、高い値を指定します。高い生存期間値であれば、1 週間などを指定し、低い値であれば 1 分未満を指定します。パスワードエントリの生存期間値は約 12 時間とし、1 日に 1 回パスワード変更ができるようにする必要があります。RPC テーブル内のエントリなど、あまり変化しないテーブルのエントリには、数週間の値を設定できます。
オブジェクトの生存期間を変更するには、そのオブジェクトに対する変更権が必要です。テーブルエントリの生存期間を変更するには、テーブルに対する変更権が必要であり、テーブルがなければエントリに対して、エントリもなければ変更したい列に対して変更権が必要です。
オブジェクトまたはテーブルエントリの現在の生存期間値を表示するには、第 15 章「NIS+ のアクセス権の管理」で説明する nisdefaults -t コマンドを使います。
オブジェクトの生存期間値を変更するには、以下のどちらかのように入力します。
nischttl time-to-live object-name |
または
nischttl [-L] time-to-live object-name |
エントリの生存期間値を変更するには、以下のいずれかのように入力します。
nischttl time-to-live \ [column=value,...], \ table-name |
または
nischttl [-ALP] time-to-live \ [column=value,...], \ table-name |
「秒」。数字だけで文字を指定しなければ、単位が秒であると解釈される (例: 1234 は 1,234 秒)。数字の後に s をつけると、単位が秒であると解釈される (例: 987s は 987 秒)。 日、時間、分などとともに指定する場合は、秒であることを明らかにするため s をつける
「分」。数字の後に m をつけると、単位が分であると解釈される (例: 90m は 90 分)
「時間」。 数字の後に h をつけると、単位が時間であると解釈される (例: 9h は 9 時間)
「日」。数字の後に d をつけると、単位が日であると解釈される (例: 7d は 7 日)
以上の値は組み合わせて使うことができます。たとえば「 4d3h2m1s 」は、4 日 3 時間 2 分 1 秒を意味します。
表 18–6 nischttl 構文のオプション
オプション |
目的 |
---|---|
A |
すべて。[column=value] 指定に合致する全エントリに変更を適用する |
L |
リンク。リンクをたどり、リンク自体ではなく、リンクされたオブジェクトまたはエントリを変更する |
P |
パス。条件を満足するエントリが 1 つ見つかるまで、パスをたどる |
オブジェクトの生存期間を変更するには、生存期間の値とオブジェクト名を指定して nischttl コマンドを入力します。-L コマンドを追加すれば、リンクされたオブジェクトにまで変更を拡張できます。
nischttl -L time-to-live object-name |
生存期間は秒か、日、時間、分、秒の組み合わせかで指定できます。前者の場合、秒数だけを指定します。後者の場合、日数、時間数、分数と秒数に「 s、m、h、d」をつけてください。 たとえば、以下のようになります。
client% nischttl 86400 sales.doc.com. client% nischttl 24h sales.doc.com. client% nischttl 2d1h1m1s sales.doc.com. |
最初の 2 つでは、sales.doc.com. ディレクトリの生存期間が 86,400 秒、つまり 24 時間に変更されます。3 つめでは、hosts テーブル内の全エントリの生存期間が 176,461 秒、つまり 2 日と 1 時間 1 分 1 秒に変更されます。
エントリの生存期間を変更するには、インデックス付きのエントリフォーマットを使います。-A、-L、または -P のどのオプションでも使えます。
nischttl [-ALP] time-to-live \ [column=value,...], \ table-name |
Cシェル を使用している場合、[ ]?がメタキャラクタとして解釈されないように引用符で囲みます。
次に示す例は上記の例と似ていますが、オブジェクトではなく、テーブルエントリの値を変更します。
client% nischttl 86400 '[uid=99],passwd.org_dir.doc.com.' client% nischttl 24h `[uid=99],passwd.org_dir.doc.com.' client% nischttl 2d1h1m1s `[name=fred],hosts.org_dir.doc.com.' |