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

その他のプリンタ定義の設定とリセット

この節では、プリンタ定義の設定またはリセットの手順を説明します。次のプリンタ定義の一部は、Solaris プリンタマネージャを使用して設定できます。次の手順では、迅速にプリンタ定義を設定またはリセットするための、lp コマンドの使用方法を示しています。

プリンタ記述を追加する方法

  1. プリンタサーバーにスーパーユーザーまたは lp としてログインするか、同等の役割になります。

  2. プリンタを説明する記述を追加します。


    # lpadmin -p printer-name -D "comment"

    -p printer-name
    

    記述を追加するプリンタ名 

    -D "comment"
    

    設置場所や管理担当者など、プリンタの特性を指定する。シェルが解釈する文字 ( *?\! ^ など) は、一重引用符で囲む。

    詳細については、lpadmin(1M) のマニュアルページを参照してください。

    プリンタ記述はプリンタサーバーの /etc/lp/printers/printer-name/comment ファイルに追加されます。

  3. Description 情報をチェックします。


    $ lpstat -p printer-name -l
    

例 — プリンタ記述を追加する

次の例は、プリンタ luna のプリンタ記述を追加する方法を示しています。


# lpadmin -p luna -D "Nathans office"

デフォルトプリンタの指定

印刷コマンドを使用するときにプリンタ名を入力しなくてもすむように、ユーザーのデフォルトプリンタを指定できます。あるプリンタをデフォルトとして指定する前に、そのプリンタをシステム上の印刷サービスに認識させなければなりません。次のいずれかを設定すれば、ユーザーのデフォルトプリンタを設定できます。

アプリケーションがプリンタを指定する場合は、システムのデフォルトプリンタを設定したかどうかに関係なく、その出力先が印刷サービスに使用されます。アプリケーションにプリンタの出力先がない場合や、印刷コマンドの使用時にプリンタ名が指定されていない場合は、印刷コマンドはデフォルトプリンタを特定の順序で検索します。表 5–1 は、システムのデフォルトプリンタの検索順序を示しています。

表 5–1 デフォルトプリンタの検索順序

検索順序 

/usr/bin/lp コマンドを使用

lpd ベースの互換コマンド (lpr lpq および lprm) を使用

LPDEST 変数

PRINTER 変数

PRINTER 変数

LPDEST 変数

システムのデフォルトプリンタ 

システムのデフォルトプリンタ 

システムのデフォルトプリンタを設定する方法

  1. デフォルトプリンタを設定したいシステムに、スーパーユーザーまたは lp としてログインするか、同等の役割になります。

  2. システムのデフォルトプリンタを設定します。


    # lpadmin -d [printer-name]

    -d printer-name
    

    システムのデフォルトプリンタとして割り当てるプリンタ名。printer-name を指定しなければ、システムはデフォルトプリンタなしで設定される

    デフォルトプリンタ名がシステムの /etc/lp/default ファイルに入力されます。

  3. システムのデフォルトプリンタをチェックします。


    $ lpstat -d
    

例 — システムのデフォルトプリンタを設定する

次の例は、プリンタ luna をシステムのデフォルトプリンタとして設定する方法を示しています。 これは、LPDEST または PRINTER 環境変数が設定されていない場合、luna がシステムのデフォルトプリンタとして使用されることを意味します。


# lpadmin -d luna
# lpstat -d
system default destination: luna

バナーページの印刷

バナーページには、印刷要求を出したユーザー、印刷要求 ID、要求の印刷時期が出力されます。また、バナーページには、ユーザーがプリントアウトを識別しやすいように変更可能なタイトルを付けることもできます。

バナーページは、印刷ジョブの所有者を簡単に識別できるようにします。これは、多数のユーザーが同じプリンタにジョブを依頼するときに特に便利です。ただし、バナーページを印刷すると用紙の消費量が増えますが、1 台のプリンタを使用するユーザーが少ない場合は必要ないことがあります。また場合によっては、バナーページを印刷しない方がよいこともあります。たとえば、プリンタに支払い小切手などの特殊な用紙やフォームが装着されている場合は、バナーページを印刷すると問題が起きることがあります。

デフォルトでは、印刷サービスはバナーページを強制的に印刷します。ただしユーザーは、印刷要求を出すときにバナーページの印刷を抑制するかどうかを選択できます。これは、lpadmin コマンドまたは Solaris プリンタマネージャから設定することができます。 ユーザーが選択できるようにする場合、ユーザーがバナーページの印刷を抑制するには、-o banner オプションを使用する必要があります。

また、バナーページが不要な場合、バナーページの印刷を抑制してまったく印刷されないようにすることもできます。バナーページの印刷は、lpadmin コマンドを使用することによって抑制できます。

表 5–2 バナーページの印刷

使用するコマンド 

バナーページの印刷 

変更 

lpadmin -p printer -o banner または

lpadmin -p printer -o banner=always

常に行われる 

一般ユーザーが lp -o nobanner コマンドを使用すると、要求は印刷されるが nobanner 引数は無視される

root または別の権限のユーザーの場合、nobanner 引数が使用される

lpadmin -p printer -o nobanner

lpadmin -p printer -o banner=optional

デフォルトで有効。ただし、lp -o nobanner コマンドを使えば要求単位で無効にできる

該当しない 

lpadmin -p printer -o banner=never

無効 

不可 

詳細は、バナーページを抑制する方法を参照してください。

バナーページを選択可能にする方法

  1. プリンタサーバーにスーパーユーザーまたは lp としてログインするか、同等の役割になります。

  2. バナーページを選択可能にします。


    # lpadmin -p printer-name -o banner=optional
    

    -p printer-name
    

    バナーページ印刷を選択可能にするプリンタ名 

    -o banner=optional

    ユーザーが印刷要求を出すときにバナーページなしを指定できるようにする 

    すべての印刷要求でバナーページを強制印刷したい場合は、 -o banner=always オプションを指定します。

    バナーページの設定は、プリンタサーバーの /etc/lp/printers/printer-name/configuration ファイルに指定します。

  3. 次のコマンドの出力には、「Banner not required」という行が入っています。


    $ lpstat -p printer-name -l
    

例 — バナーページを選択可能にする

次の例は、プリンタ luna のバナーページを選択可能にする方法を示しています。


# lpadmin -p luna -o banner=optional

バナーページを抑制する方法

  1. プリンタサーバーにスーパーユーザーまたは lp としてログインするか、同等の役割になります。

  2. バナー印刷を抑制します。


    lpadmin -p printer-name -o banner=never
    

    -p printer-name
    

    バナーページ印刷を選択可能にするプリンタ名 

    -o banner=never

    どのような状況でもバナーページ印刷を無効にする 

    バナーページの設定は、プリンタサーバーの /etc/lp/printers/printer-name/configuration ファイルに指定されます。

  3. 次のコマンドの出力に Banner not printed という行が含まれていることを確認します。


    $ lpstat -p printer-name -l
    
  4. プリンタに印刷要求を送ってバナーページが印刷されないことを確認します。

例 — バナーページ印刷を抑制する

次の例は、プリンタ luna のバナーページを印刷しないようにする方法を示しています。


# lpadmin -p luna -o banner=never

プリンタクラスの設定

印刷サービスを使用すると、複数のローカルプリンタを 1 つのクラスにグループ化できます。この作業は、lpadmin -c コマンドを使用しなければ実行できません。

プリンタクラスを設定すると、ユーザーは印刷要求の出力先として (個々のプリンタではなく) そのクラスを指定できます。そのクラスで空いている最初のプリンタが印刷に使用されます。その結果、プリンタはできる限りビジーに保たれるので、応答時間が短縮されます。

印刷サービスに認識されるデフォルトのプリンタクラスはなく、定義したプリンタクラスのみが存在することになります。プリンタクラスを定義するには、次の 3 つの方法があります。

また、1 つのクラスには特定の順序で使用される複数のプリンタを含めることができます。LP 印刷サービスでは、常に各プリンタがクラスに追加された順番に従って利用できるプリンタをチェックします。したがって、最初に高速プリンタにアクセスしたい場合は、高速プリンタを低速プリンタよりも先にクラスに追加します。その結果、高速プリンタで最大限の印刷要求が処理されることになります。低速プリンタは、高速プリンタが使用されているときのバックアッププリンタとして確保されます。


注 –

印刷要求の負荷は、ローカルプリンタのクラス内のプリンタ間でのみ調整されます。


クラス名も、プリンタ名と同様に固有の名前でなければなりません。クラス名は 14 文字以内の英数字で、下線を使用できます。

プリンタクラスは定義しなくてもかまいません。プリンタクラスを使用するとネットワーク上のユーザーに利点があると判断した場合にのみ、クラスを追加してください。

プリンタのクラスを定義する方法

  1. プリンタサーバーにスーパーユーザーまたは lp としてログインするか、同等の役割になります。

  2. プリンタのクラスを定義します。


    # lpadmin -p printer-name -c printer-class
    

    -p printer-name
    

    プリンタのクラスに追加するプリンタ名 

    -c printer-class
    

    プリンタのクラス名 

    指定したプリンタが、プリンタサーバーの/etc/lp/classes/printer-class ファイル内でそのクラスのリストの最後に追加されます。プリンタクラスが存在しない場合は、作成されます。

  3. プリンタがプリンタクラスの中にあることを確認します。


    $ lpstat -c printer-class
    

例 — プリンタのクラスを定義する

次の例は、プリンタ luna をプリンタクラス roughdrafts に追加する方法を示しています。


# lpadmin -p luna -c roughdrafts

障害の通知の設定

事前に選択しておくと、印刷サービスはプリンタ障害を検出したときに通知できます。プリンタの障害通知を受け取る方法として、以下のいずれかの方法を、lpadmin -A コマンドまたは Solaris プリンタマネージャを使用して選択することができます。

ただし、lpadmin -A コマンドを使用すると、選択したプログラムで指定されるメッセージを受信するようにすることもできます。また、lpadmin -A コマンドで、すでに知っているエラーに関する通知を選択的に抑制することもできます。

障害通知を配信するプログラムを指定しなければ、障害警告の内容は事前に定義済みのメッセージになります。このメッセージは、プリンタが印刷を停止しており、解決が必要であることを示します。

次の表は、lpadmin -A コマンドでプリンタに設定できる警告値を示しています。 これらの警告値は、印字ホイール、フォントカートリッジ、フォームについても設定できます。

表 5–3 印刷障害の警告値

-A alert の値

説明 

'mail [user-name]'

警告メッセージをプリンタサーバー上の root か lp、またはユーザー名として指定した user-name に電子メールで送信する

'write [user-name]'

警告メッセージをプリンタサーバー上の root か lp のコンソールウィンドウ、またはユーザー名として指定した user-name のコンソールウィンドウに送信する。指定したユーザーが警告メッセージを受け取るには、プリンタサーバーにログインしていなければならない

'command'

警告ごとに command ファイルを実行する。環境変数とカレントディレクトリは保存され、ファイルの実行時に復元される

quiet

障害が解決されるまで警告を停止する。この値は、ユーザー (root または指定したユーザー) が繰り返し警告を受け取るときに使用する 

none

警告を送信しない。プリンタの障害警告を指定しない場合は、これがデフォルト値である 

プリンタの障害警告を設定する方法

  1. プリンタサーバーにスーパーユーザーまたは lp としてログインするか、同等の役割になります。

  2. プリンタに障害警告を設定します。


    # lpadmin -p printer-name -A alert [-W minutes]

    -p printer-name
    

    プリンタ障害の警告を指定するプリンタ名 

    -A alert

    プリンタ障害が起きたときに出される警告の種類を指定する。alert の有効値については表 5–3を参照してください。 有効な値は mailwritequiet など。

    -W minutes

    障害警告が出される間隔 (分単位) を指定する。このオプションを指定しなければ、警告は一度だけ送信される 

    障害警告の設定は、プリンタサーバーの /etc/lp/printers/printer-name/alert.sh ファイルに入力されます。

  3. 次のコマンドの出力から、「On fault」見出しに続く情報をチェックします。


    $ lpstat -p printer-name -l
    

例 — プリンタの障害警告を設定する

次の例は、障害警告をユーザー joe に電子メールで送信し、その後は 5 分ごとに送信するプリンタ mars の設定方法を示しています。


# lpadmin -p mars -A 'mail joe' -W 5

次の例は、障害警告をコンソールウィンドウに送信し、その後は 10 分ごとに送信するプリンタ venus の設定方法を示しています。


# lpadmin -p venus -A write -W 10

次の例は、プリンタ mercury の障害警告を停止する方法を示しています。


# lpadmin -p mercury -A none

次の例は、プリンタ venus の障害が解決するまで、障害警告を停止する方法を示しています。


# lpadmin -p venus -A quiet

プリンタの障害回復の設定

障害通知を送信しないことを選択した場合には、問題を解決するために印刷障害を検出することができます。LP 印刷サービスは、障害のあるプリンタを継続して使用しません。プリンタ障害の警告に加えて、印刷要求が必要とするときに、印字ホイール、フォントカートリッジ、およびフォームを取り付けるようにシステム管理者に知らせる警告も設定できます。

lpadmin -F コマンドを使用すると、プリンタ専用の障害回復オプションを定義できます。これは、Solaris プリンタマネージャではできません。

プリンタ障害は、用紙切れやトナーカートリッジの交換が必要であるなど、きわめて単純な場合があります。より重大な問題としては、完全なプリンタ障害や電源障害などがあります。プリンタ障害を解決すると、障害が発生したときに有効だった印刷要求は、次のいずれかの方法で印刷を開始します。

印刷を停止したページの先頭から印刷を再開するには、印刷フィルタが必要です。印刷フィルタは、プリンタに使用される制御シーケンスを記録してページ境界を追跡します。この処理は、印刷サービスに使用されるデフォルトフィルタでは実行できません。指定した印刷フィルタで回復処理を実行できなければ、印刷サービスから通知されます。フィルタの作成方法については、新しい印刷フィルタを作成する方法を参照してください。

プリンタ障害を解決した直後に印刷を再開したい場合は、enable コマンドを使用してプリンタを使用可能にします。

次の表は、lpadmin -F コマンドでプリンタに設定できる障害回復値を示しています。

表 5–4 プリンタ障害回復の値

-F recover-options の値

説明 

beginning

障害回復後に、ファイルの先頭から印刷を再開する 

continue

障害回復後に、印刷が停止されたページの先頭から印刷を開始する。この回復オプションには印刷フィルタが必要

wait

障害回復後に、プリンタを使用可能にするまで印刷が停止される。enable コマンドでプリンタを使用可能にすると、印刷は停止されたページの先頭から始まる。この回復オプションには印刷フィルタが必要

プリンタの障害回復を設定する方法

  1. プリンタサーバーにスーパーユーザーまたは lp としてログインするか、同等の役割になります。

  2. プリンタの障害回復を設定します。


    # lpadmin -p printer-name -F recovery-options
    

    -p printer-name
    

    障害からの回復方法を指定するプリンタ名 

    -F recovery-options
    

    beginning continuewait の 3 つの有効な回復オプション。

    recovery-options の有効値については、表 5–4を参照してください。

    詳細については、lpadmin(1M) のマニュアルページを参照してください。

    障害回復の設定がプリンタサーバーの /etc/lp/printers/printer-name/configuration ファイルに入力されます。

  3. 次のコマンドの出力から、「After fault」見出しに続く情報をチェックします。


    $ lpstat -p printer-name -l
    

例 — プリンタの障害回復を設定する

次の例は、印刷が停止したページの先頭から再開させるプリンタ luna の設定方法を示しています。


# lpadmin -p luna -F continue

プリンタへのユーザーアクセスを制限する

利用できるプリンタの一部またはすべてにアクセスできるユーザーを制限する必要がある場合があります。たとえば、一部のユーザーが高品質プリンタ上で印刷できないようにして経費を抑えることができます。プリンタへのユーザーアクセスを制限するには、プリンタサーバー上でlpadmin -u コマンドを使用して「許可 」リストと「拒否」 リストを作成できます。Solaris プリンタマネージャを使用すると、許可リストのみを作成できます。 どちらのリストも作成しなければ、プリンタはそこにアクセスできる全ユーザーが利用できます。

許可リストには、指定したプリンタへのアクセスを許可されるユーザー名が入っています。拒否リストには、指定したプリンタへのアクセスを拒否されるユーザー名が入っています。

許可リストと拒否リストには、次の規則が適用されます。

許可リストと拒否リストの規則 

ユーザアクセスの制限  

許可リストも拒否リストも作成しない、または両方のリストが空 

そのプリンタには全ユーザーがアクセスできる 

許可リストで all を指定する

そのプリンタには全ユーザーがアクセスできる 

拒否リストで all を指定する

サーバー上の root と lp 以外の全ユーザーのアクセスが拒否される 

許可リストにエントリを作成する 

拒否リストは無視される。リストに指定されているユーザーだけがプリンタにアクセスできる 

拒否リストを作成し、許可リストは作成しないか許可リストを空にする 

拒否リストで指定されたユーザーはプリンタにアクセスできない 

実際にプリンタへのアクセスを制御しているのはプリンタサーバーなので、許可リストと拒否リストを作成できるのはプリンタサーバー上でだけです。許可リストと拒否リストを作成した場合、プリンタサーバーは、プリンタへのユーザーアクセスを排他的に制御します。

表 5–5 は、プリンタへのユーザーアクセスを制限するために許可リストまたは拒否リストに追加できる値を示しています。

表 5–5 許可リストと拒否リストの値

user-list の値

説明 

user

任意のシステム上の特定ユーザー 

all

すべてのシステム上の全ユーザー 

none

すべてのシステム上の全ユーザーが該当しない 

system !user

特定システム上の特定ユーザー 

!user

ローカルシステム上の特定ユーザー 

all! user

任意のシステム上の特定ユーザー 

all!all

すべてのシステム上の全ユーザー 

system!all

特定システム上の全ユーザー 

!all

ローカルシステム上の全ユーザー 

プリンタへのユーザーアクセスを制限する方法

  1. プリンタサーバーにスーパーユーザーまたは lp としてログインするか、同等の役割になります。

  2. プリンタへのユーザーアクセスを許可または拒否します。


    # lpadmin -p printer-name -u allow:user-list [deny:user-list]

    -p printer-name
    

    許可または拒否ユーザーアクセスリストを適用するプリンタ名 

    -u allow: user-list

    許可ユーザーアクセスリストに追加するユーザー名。このコマンドで複数のユーザーを指定できる。空白またはコンマを使用して名前を区切る。空白を使用する場合は、名前のリストを引用符で囲む。 

    user-list の有効な値については、表 5–5 を参照

    -u deny: user-list

    拒否ユーザーアクセスリストに追加するユーザー名。このコマンドで複数のユーザーを指定できる。空白またはコンマを使用して名前を区切る。空白を使用する場合は、名前のリストを引用符で囲む。 

    user-list の有効な値については、表 5–5 を参照

    指定したユーザーが、プリンタサーバーの次のファイル内でプリンタの許可または拒否リストに追加されます。

    /etc/lp/printers/printer-name/users.allow

    /etc/lp/printers/printer-name/users.deny


    注 –

    許可リストの user-listnone を指定した場合、プリンタサーバー用に次のファイルは作成されません。

    /etc/lp/printers/printer-name /alert.sh

    /etc/lp/printers/printer-name/alert.var

    /etc/lp/printers/printer-name/users.allow

    /etc/lp/printers/printer-name/users.deny


  3. 次のコマンドの出力から、「Users allowed」または「Users denied」見出しに続く情報をチェックします。


    $ lpstat -p printer-name -l
    

例 — プリンタへのユーザーアクセスを制限する

次の例は、nathangeorge にだけプリンタ luna へのアクセスを許可する方法を示しています。


# lpadmin -p luna -u allow:nathan,george

次の例は、nathan george にだけプリンタ asteroid へのアクセスを拒否する方法を示しています。


# lpadmin -p asteroid -u deny:"nathan george"