Solaris のシステム管理 (第 2 巻)

第 4 章 プリンタの管理手順

この章では、プリンタを管理する手順について説明します。この章で説明する手順は次のとおりです。

印刷と LP 印刷サービスの概要については、第 1 章「印刷管理の概要」を参照してください。

プリンタと印刷スケジューラの管理

この節では、プリンタと印刷スケジューラを管理するために日常的に行う作業について説明します。

プリンタとプリンタアクセスの削除

プリンタの交換が必要な場合や、プリンタを別の場所に移動したい場合は、印刷サーバーから物理的に削除する前に、LP 印刷サービスからプリンタ情報を削除しなければなりません。また、プリンタ上の現在の印刷要求がすべて印刷されるか、別のプリンタに移動して印刷されるかを確認する必要があります。

プリンタ情報を印刷サーバーから削除するだけでなく、印刷クライアントまたはネットワークネームサービスからも削除する必要があります。印刷サーバーからローカルプリンタを削除する場合は、印刷クライアントまたはネットワークネームサービスからリモートプリンタエントリを削除する必要があります。プリンタを別の印刷サーバーに移動する場合は、印刷クライアントまたはネットワークネームサービスから古いリモート印刷エントリを削除し、リモートプリンタへのアクセスを新しい位置に追加する必要があります。

ローカルとリモートのプリンタの削除方法については、「プリンタとリモートプリンタへのアクセスを削除する方法」を参照してください。Admintool を使用して、ローカルまたはリモートプリンタを削除できます。ただし、Admintool では、待ち行列に入っている印刷要求を別のプリンタに移動できません。

プリンタとリモートプリンタへのアクセスを削除する方法

  1. 削除したいプリンタへアクセスできる印刷クライアントに、スーパーユーザーまたは lp としてログインします。

  2. 印刷クライアントからプリンタに関する情報を削除します。

    print-client# lpadmin -x printer-name
    
    -x

    指定したプリンタを削除する 

    printer-name

    削除したいプリンタ名 

    指定したプリンタに関する情報が、印刷クライアントの /etc/lp/printers ディレクトリから削除されます。

  3. 印刷クライアントが同じ印刷サーバー上の別のプリンタを使用しない場合は、その印刷サーバーに関する情報を印刷クライアントから削除します。

    print-client# lpsystem -r print-server
    
    -r

    指定した印刷サーバーを削除する 

    print-server

    削除したい印刷サーバー名 

    印刷サーバーが、印刷クライアントの /etc/lp/Systems ファイルから削除されます。

  4. プリンタへアクセスできる各印刷クライアント上で、手順 2 から 手順 3 までを繰り返します。

  5. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  6. プリンタ上で印刷要求を停止します。

    print-server# reject printer-name
    
    reject printer-name
    

    指定したプリンタの印刷要求を拒否する 

    この手順を実行すると、プリンタの削除処理中は、そのプリンタの待ち行列に新しい要求が入らなくなります。詳細は、「プリンタへの印刷要求を受け付けるまたは拒否する方法」を参照してください。

  7. プリンタを停止します。

    print-server# disable printer-name
    

    この手順を実行すると、印刷要求の印刷は停止されます。印刷を停止する方法については、「プリンタを使用可能または使用不可にする方法」を参照してください。

  8. 待ち行列に残っている印刷要求がある場合は、別のプリンタに移動します。

    印刷要求を別のプリンタに移動する方法については、「印刷要求を別のプリンタに移動する方法」を参照してください。

  9. プリンタを印刷サーバーから削除します。

    print-server# lpadmin -x printer-name
    

    プリンタの構成情報が、印刷サーバーの /etc/lp/printers ディレクトリから削除されます。

  10. 削除したばかりのプリンタを使用していた印刷クライアントが、まだ印刷サーバー上で別のプリンタを使用中でなければ、その印刷クライアントに関する情報を削除します。

    print-server# lpsystem -r print-client1 [,print-client2...]
    
    -r

    指定した印刷サーバーを削除する 

    print-client

    印刷サーバーから削除したい印刷クライアント名。このコマンドで複数の印刷クライアントを指定できる。印刷クライアント名を区切るには空白またはコンマを使用する。空白を使用する場合は、印刷クライアントのリストを引用符で囲む 

    指定した印刷クライアントが、印刷サーバーの /etc/lp/Systems ファイルから削除されます。

  11. プリンタ情報が削除されていることを確認します。

    1. 印刷クライアント上でプリンタ情報が削除されていることを確認します。

      print-client$ lpstat -p printer-name -l
      

      上記のコマンドの出力で、プリンタが存在しないことを示すエラーが表示されます。

    2. 印刷サーバー上でプリンタ情報が削除されていることを確認します。

      print-server$ lpstat -p printer-name -l
      

      上記のコマンドの出力で、プリンタが存在しないことを示すエラーが表示されます。

例 - プリンタとリモートプリンタへのアクセスを削除する

次の例では、コマンドは印刷クライアント terra と印刷サーバー jupiter からプリンタ luna を削除し、印刷クライアント terra を印刷サーバーから削除します。

terra# lpadmin -x luna
Removed "luna".
terra# lpstat -p luna -l 
jupiter# lpadmin -x luna
jupiter# lpsystem -r terra
Removed "terra".
jupiter# lpstat -p luna -l 

プリンタの状態のチェック

多くの日常的なプリンタ管理作業には、LP 印刷サービスや特定のプリンタの状態に関する情報が必要です。たとえば、どのプリンタが使用できるかを判別し、そのプリンタの特性を検査しなければならない場合があります。lpstat コマンドを使用すると、LP 印刷サービスや特定のプリンタに関する状態情報を調べることができます。

プリンタの状態をチェックする方法

  1. ネットワーク上の任意のシステムにログインします。

  2. lpstat コマンドを使用してプリンタの状態をチェックします。

    ここには、最も一般的に使用するオプションのみを掲載してあります。他のオプションについては、lpstat(1) のマニュアルページを参照してください。

    $ lpstat [-d] [-p printer-name [-D] [-l]] [-t]
    -d
    

    システムのデフォルトプリンタが表示される 

    -p printer-name
    

    プリンタが使用可能かアイドル状態か、いつ使用可能または使用不可になったか、および印刷要求を受け付けているかどうかが表示される。 

    このコマンドで複数の印刷クライアントを指定できる。印刷クライアント名を区切るには空白またはコンマを使用する。空白を使用する場合は、印刷クライアントのリストを引用符で囲む。printer-name を指定しなければ、すべてのプリンタの状態が表示される

    -D
    

    指定した printer-name の記述が表示される

    -l
    

    指定した printer-name の特性が表示される

    -t
    

    すべてのプリンタの状態、使用可能かどうか、印刷要求を受け付けているかどうかなど、LP 印刷サービスに関する状態情報が表示される 

例 - プリンタの状態をチェックする

次の例では、コマンドはシステムのデフォルトプリンタ名を表示します。

$ lpstat -d
system default destination: luna

次の例では、コマンドはプリンタ luna の状態を表示します。

$ lpstat -p luna
printer luna is idle. enabled since Jun 16 10:09 1998. available.

次の例では、コマンドはプリンタ asteroidluna の記述を表示します。

$ lpstat -p "asteroid luna" -D
printer asteroid faulted. enabled since Jun 16 10:09 1998. available.
	unable to print: paper misfeed jam
 
	Description: Printer by break room.
printer luna is idle. enabled since Jun 16 10:09 1998. available.
	Description: Printer by server room.

次の例では、コマンドはプリンタ luna の特性を表示します。

$ lpstat -p luna -l
printer luna is idle. enabled since Jun 16 10:11 1998. 
available.
	Content types: any
	Printer types: unknown
	Description: Printer by server room.
	Users allowed:
		(all)
	Forms allowed:
		(none)
	Banner not required
	Character sets:
		(none)
	Default pitch:
	Default page size:

印刷スケジューラの再起動

印刷スケジューラ lpsched は、印刷サーバー上の印刷要求を処理します。ただし、印刷スケジューラがシステム上で動作を停止したために、印刷要求の受け付けや印刷が停止されることがあります。

印刷スケジューラを再起動するには、/usr/lib/lp/lpsched コマンドを使用できます。印刷スケジューラが動作を停止するときに印刷要求が印刷中だった場合は、印刷スケジューラを再起動すると、その印刷要求全体が印刷されます。

印刷スケジューラを停止する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. 印刷スケジューラが動作しているかどうかをチェックします。

    # lpstat -r
    

    印刷スケジューラが動作していない場合は、「scheduler is not running」というメッセージが表示されます。

  3. 印刷スケジューラが動作している場合は停止します。

    # /usr/lib/lp/lpshut
    

印刷スケジューラを再起動する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. 印刷スケジューラが動作しているかどうかをチェックします。

    # lpstat -r
    

    印刷スケジューラが動作していない場合は、「scheduler is not running」というメッセージが表示されます。

  3. 印刷スケジューラが動作していない場合は起動します。

    # /usr/lib/lp/lpsched
    

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

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

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

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin(1M) コマンドを使用してプリンタ記述を追加します。

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

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

    -D "comment"
    

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

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

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

    $ lpstat -p printer-name -l
    

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

次の例では、コマンドはプリンタ luna のプリンタ記述を追加します。

# lpadmin -p luna -D "Nathans office"

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

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

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

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

検索順序 

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

SunOS/BSD 互換コマンド (lprlpq、または lprm) を使用

LPDEST 変数

PRINTER 変数

PRINTER 変数

LPDEST 変数

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

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

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

  1. デフォルトプリンタを設定したいシステムにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用してシステムのデフォルトプリンタを設定します。

    # lpadmin -d [printer-name]
    -d printer-name
    

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

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

  3. lpstat コマンドを使用して、システムのデフォルトプリンタをチェックします。

    $ lpstat -d
    

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

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

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

バナーページの印刷

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

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

デフォルトでは、印刷サービスはバナーページを強制的に印刷します。ただしユーザーは、印刷要求を出すときにバナーページの印刷をオフにするかどうかを選択できます。この選択肢は lpadmin コマンドまたは Admintool を通じて設定できます。ユーザーが選択できるようにする場合、ユーザーがバナーページの印刷をオフに切り替えるには、-o nobanner オプションを使用する必要があります。

また、プリンタのバナーページをオフにして印刷できないようにすることもできます。これは、バナーページが不要な状況では重要です。バナーページの印刷は、コマンド行インタフェースからでなければオフにできません。詳細は、「バナーページをオフにする方法」を参照してください。

バナーページをオプションにする方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用してバナーページをオプションにします。

    # lpadmin -p printer-name -o nobanner
    
    -p printer-name
    

    バナーページをオプションにするプリンタ名 

    -o nobanner 
    

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

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

    バナーページの設定が印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに入力されます。

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

    $ lpstat -p printer-name -l
    

例 - バナーページをオプションにする

次の例では、コマンドはユーザーがプリンタ luna 上でバナーページなしを要求できるようにします。

# lpadmin -p luna -o nobanner

バナーページをオフにする方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. ディレクトリを /etc/lp/interfaces ディレクトリに変更します。

    # cd /etc/lp/interfaces
    
  3. バナーページをオフにしたいプリンタ名が付いているファイルを編集します。

  4. nobanner 変数を yes に変更します。

    nobanner="yes"

    バナーページを再びオンにする場合は、nobanner 変数を no に変更します。

    バナーページの設定が印刷サーバーの /etc/lp/printers/printer-name/configuration ファイルに入力されます。

  5. プリンタに印刷要求を出して、バナーページが印刷されないことを確認します。

プリンタクラスの設定

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

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

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

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


注 -

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


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

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

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

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用して、プリンタのクラスを定義します。

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

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

    -c printer-class
    

    プリンタのクラス名 

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

  3. lpstat コマンドを使用して、プリンタクラスのプリンタを表示します。

    $ lpstat -c printer-class
    

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

次の例では、コマンドはプリンタ luna をクラス roughdrafts に追加します。

# lpadmin -p luna -c roughdrafts

障害の通知の設定

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

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

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

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

表 4-2 印刷障害の警告値

-A alert の値

説明 

'mail [user-name]'

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

'write [user-name]'

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

'コマンド'

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

quiet

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

none

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

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

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用してプリンタの障害警告を設定します。

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

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

    -A alert
    

    プリンタ障害が起きたときに出される警告の種類を指定する。alert に有効な値については、表 4-2 を参照。有効な値は 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 コマンドを使用すると、プリンタ専用の障害回復オプションを定義できます。

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

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

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

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

表 4-3 プリンタ障害回復の値

-F recover-options の値

説明 

beginning

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

continue

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

wait

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

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

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin(1M) コマンドを使用してプリンタ障害から回復する方法を設定します。

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

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

    -F recovery-options
    

    beginningcontinuewait の 3 つの有効な回復オプション。recovery-options に有効な値については、表 4-3 を参照

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

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

    $ lpstat -p printer-name -l
    

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

次の例では、コマンドは、印刷が停止されたページの先頭から再開するようにプリンタ luna を設定します。

# lpadmin -p luna -F continue

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

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

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

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

リストの状態 

アクセスの制限 

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

全ユーザーがそのプリンタを使用できる 

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

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

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

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

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

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

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

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

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

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

表 4-4 許可リストと拒否リストの値

user-list の値

説明 

user

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

all

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

none

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

system!user

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

!user

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

all!user

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

all!all

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

system!all

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

!all

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

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

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpadmin コマンドを使用して、プリンタへのユーザーアクセスを許可または拒否します。

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

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

    -u allow:user-list
    

    許可ユーザーアクセスリストに追加するユーザー名。このコマンドで複数のユーザーを指定できる。空白またはコンマを使用して名前を区切る。空白を使用する場合は、名前のリストを引用符で囲む。user-list に有効な値については、表 4-4 を参照

    -u deny:user-list
    

    拒否ユーザーアクセスリストに追加するユーザー名。このコマンドで複数のユーザーを指定できる。空白またはコンマを使用して名前を区切る。空白を使用する場合は、名前のリストを引用符で囲む。user-list に有効な値については、表 4-4 を参照

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

    /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

次の例で、コマンドはユーザー nathangeorge によるプリンタ asteroid へのアクセスを拒否します。

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

印刷要求の管理

ユーザーが印刷クライアントから印刷要求を出すと、その印刷要求は印刷サーバー上の待ち行列に追加されてからプリンタに送信されます。印刷要求が待ち行列に入っている間は、クライアントシステムからの要求で取り消したり、その状態情報を取得したりできます。印刷要求の移動、停止、再開または優先度の変更などを実行するには、印刷サーバーにログインしなければなりません。これらの動作によって、印刷サービスを絶えずスムーズに機能させることができます。

印刷コマンドを使用すると、あらゆる印刷要求の管理作業を実行できます。Admintool を使用すると、印刷サーバーを変更するときに一部の印刷要求の管理作業を実行できます。表 4-5 は、Admintool で実行できる印刷要求の管理作業を示しています。

表 4-5 Admintool による印刷要求の管理

作業 

Admintool で実行できるか 

印刷要求の取り消し 

実行できない 

印刷要求の移動 

実行できない 

印刷要求の優先順位の変更 

実行できない 

印刷要求の受け付けまたは拒否 

実行できる 

印刷の処理または停止 

実行できる 

表 4-6 は、lp -H コマンドを使用して印刷要求の優先順位を変更するための値を示しています。

表 4-6 印刷要求の優先順位を変更する値

-H change-priority の値

説明 

-hold

ユーザーが取り消すか、LP 印刷サービスに要求の印刷再開を指示するまで、印刷要求を停止する 

-resume

停止されていた印刷要求を待ち行列に戻す。印刷要求は、優先順位と待ち行列内での位置に従って印刷される。すでに印刷中の印刷ジョブを停止すると、resume は印刷要求が次に印刷される要求になるように待ち行列の先頭に配置する

-immediate

印刷要求を待ち行列の先頭に配置する。要求がすでに印刷中であれば、次の要求をすぐに印刷できるように、印刷中の要求を停止する 

印刷要求の状態をチェックする方法

  1. ネットワーク上の任意のシステムにログインします。

  2. lpstat コマンドを使用して、プリンタと印刷要求の状態をチェックします。

    ここには、最も一般的に使用するオプションだけを掲載してあります。他の有効なオプションについては、lpstat(1) のマニュアルページを参照してください。

    $ lpstat -o [list] | -u [user-list]

    -o list

    特定のプリンタの印刷要求の状態が表示される。list には、1 つ以上のプリンタ名、プリンタクラス名、または印刷要求 ID を指定できる。

    list には、複数のプリンタ名、クラス名、ID を指定できる。値を区切るには空白またはコンマを使用する。空白を使用する場合は、値のリストを引用符で囲む。

    list を指定しなければ、すべてのプリンタへの印刷要求の状態が表示される

    -u user-list

    特定のユーザーの印刷要求の状態が表示される。user-list には 1 人以上のユーザー名を指定できる。

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

    user-list を指定しなければ、すべてのユーザーの印刷要求の状態が表示される

    lpstat コマンドを使用して印刷要求の状態をチェックすると、印刷要求ごとに 1 行ずつ表示されます。各行には、左から右に要求 ID、ユーザー、出力バイト数、要求日時、「being filtered」のような要求に関する情報が表示されます。

例 - 印刷要求の状態をチェックする

次の例で、コマンドはユーザー fred の印刷要求がプリンタ luna への待ち行列に 1 つ入っていることを示しています。

$ lpstat
luna-1    fred     1261    Mar 12 17:34

次の例は、ユーザー paul には待ち行列に入っている印刷要求がないことを示しています。

$ lpstat -u paul

次の例は、プリンタ moon に 2 つの印刷要求があることを示しています。

$ lpstat -o moon
moon-78    root     1024   Jan 14 09:07
moon-79    root     1024   Jan 14 09:08

印刷の処理または停止

enable(1) コマンドと disable(1) コマンド、または Admintool の「プリンタの変更 (Modify Printer)」ウィンドウの「印刷要求処理 (Process Print Requests)」フィールドを使用すると、プリンタが待ち行列に入っている要求の印刷を処理または停止するかを制御できます。プリンタを使用不可にすると、プリンタは待ち行列内の要求の印刷を停止します。ただし、要求はそのまま待ち行列に追加されます (要求が待ち行列に追加されないように、プリンタを設定して印刷要求を拒否させなければなりません。印刷要求を拒否する方法については、「印刷要求の受け付けまたは拒否」を参照してください)。

プリンタが使用不可になっている場合は、使用可能にしなければなりません。この状態は、プリンタ障害が起きると発生することがあります。プリンタを使用可能にすると、印刷サービスがそれ以後に印刷待ち行列の要求を拒否しても、待ち行列が空になるまで、印刷待ち行列からの要求が印刷されます。

図 4-1 は、プリンタが使用不可になったときに印刷要求の処理が中断される様子を示しています。

図 4-1 プリンタが使用可能または使用不可になる場合

Graphic

プリンタへの印刷要求を受け付けるまたは拒否する方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. reject(1M) コマンドを使用して、プリンタで印刷要求を停止します。

    # reject [-r "reason"] printer-name
    
    -r "reason"
    

    プリンタが印刷要求を拒否している理由をユーザーに示す。理由は格納され、ユーザーがプリンタの状態をチェックする (lpstat -p) と表示される

    printer-name

    印刷要求を停止するプリンタ名 

    待ち行列に入れられた要求は、プリンタが使用可能になっている限りそのまま印刷されます。印刷を停止するようにプリンタを使用不可にする手順については、「プリンタを使用可能または使用不可にする方法」を参照してください。

  3. accept(1M) コマンドを使用して、プリンタで印刷要求を受け付けるようにします。

    # accept printer-name
    
  4. lpstat コマンドを使用してプリンタの状態をチェックし、印刷要求を受け付けているか停止しているかを調べます。

    $ lpstat -p printer-name
    

例 - プリンタへの印刷要求を受け付けるまたは拒否する

次の例で、コマンドはプリンタ luna の印刷要求を停止します。

# reject -r "luna is down for repairs" luna
destination "luna" will no longer accept requests

次の例で、コマンドはプリンタ luna が印刷要求を受け付けるように設定します。

# accept luna
destination "luna" now accepting requests

印刷要求の受け付けまたは拒否

accept コマンドと reject コマンド、または Admintool の「プリンタの変更 (Modify Printer)」ウィンドウの「印刷要求受付 (Accept Print Requests)」フィールドを使用すると、印刷要求が格納される印刷待ち行列のオンとオフを切り替えることができます。

reject コマンドを使用すると、指定したプリンタの印刷待ち行列がオフになり、新しい印刷要求は印刷サーバーの待ち行列に入れなくなります。その待ち行列に入っているすべての印刷要求は、そのまま印刷されます。すでに待ち行列に入っている要求の印刷を停止したい場合は、そのプリンタを使用不可にしなければなりません。表 4-7 では acceptrejectenable、および disable コマンドの機能を比較します。

表 4-7 accept/reject コマンドと enable/disable コマンドの機能

コマンド 

機能 

accept

印刷待ち行列に送信された印刷要求を受け付ける 

enable

印刷待ち行列にある要求を印刷する 

reject

印刷待ち行列に送信された印刷要求を拒否する 

disable

現在印刷待ち行列にある印刷要求を停止する 

プリンタを使用不可にする方法については、「印刷の処理または停止」を参照してください。

印刷要求が拒否されると、印刷サービスはその要求を出したユーザーにメッセージを送り、指定されたプリンタには印刷要求が受け付けられていないことを通知します。

また、要求を受け付けない理由をコマンド行から指定できます。その理由は、ユーザーがプリンタの待ち行列をチェックしようとするとユーザーのシステムに表示されます。図 4-2 は、印刷待ち行列が拒否されたときに印刷要求が中断される様子を示しています。

図 4-2 印刷待ち行列が要求を受け付けるか拒否する場合

Graphic

プリンタを使用可能または使用不可にする方法

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. disable コマンドを使用して、プリンタ上の印刷要求の印刷を停止します。

    # disable [-c | -W] [-r "reason"] printer-name
    
    disable

    オプションを指定しなければ、現在のジョブを取り消してプリンタを使用不可にする。現在のジョブは保存され、プリンタが使用可能になると再び印刷される

    -c
    

    現在のジョブを取り消してから、プリンタを使用不可にする。現在のジョブが後から印刷されることはない 

    -W
    

    現在のジョブが終了するまで待ってからプリンタを使用不可にする 

    -r "reason"
    

    プリンタが使用不可になった理由をユーザーに示す。理由は格納され、ユーザーがプリンタの状態をチェックする (lpstat -p) と表示される

    printer-name

    印刷要求の印刷を停止するプリンタ名 


    注 -

    プリンタのクラスを使用可能または使用不可にすることはできません。個々のプリンタのみを使用可能または使用不可にすることができます。


  3. enable を使用して、プリンタ上で印刷要求の印刷を開始します。

    # enable printer-name
    
  4. プリンタが使用可能になっていることを確認します。

    $ lpstat -p printer-name
    

例 - プリンタを使用可能または使用不可にする

次の例では、プリンタ luna 上の現在のジョブを停止し、後から印刷できるように保存して、プリンタが印刷要求の印刷を停止した理由を表示します。

# disable -r "changing the form" luna

次の例では、プリンタ luna 上で印刷要求の印刷を開始します。

# enable luna
printer "luna" enabled

印刷要求の取り消し

cancel(1) を使用すると、印刷待ち行列から印刷要求を取り消したり、印刷中のジョブを取り消したりできます。cancel コマンドには、次の 3 つの使用方法があります。

cancel を使用すると、要求が取り消され、待ち行列内の次の要求が印刷されることを示すメッセージが表示されます。次の場合にのみ、印刷要求を取り消すことができます。

特定の要求を取り消すには、その要求 ID を知る必要があります。要求 ID は、luna-185 のように、プリンタ名、ハイフン、印刷要求番号からなっています。印刷要求を依頼すると、その要求 ID が表示されます。印刷要求 ID を忘れた場合は、-o printer オプションを指定して lpstat コマンドを使用すると ID を調べることができます。

印刷要求を取り消す方法

  1. 他のユーザーの印刷要求を取り消す場合は、スーパーユーザーまたは lp になります。

  2. lpstat コマンドを使用して、取り消す印刷要求の要求 ID を判別します。

    詳細は、「印刷要求の状態をチェックする方法」を参照してください。

  3. cancel コマンドを使用して印刷要求を取り消します。

    $ cancel request-id | printer-name
    

    request-id

    取り消す印刷要求の要求 ID。このコマンドで複数の要求 ID を指定できる。要求 ID を区切るには空白またはコンマを使用する。空白を使用する場合は、要求 ID のリストを引用符で囲む

    printer-name

    現在印刷中の印刷要求を取り消したいプリンタを指定する。 

    このコマンドで複数のプリンタ名を指定できる。プリンタ名を区切るには空白またはコンマを使用する。空白を使用する場合は、プリンタ名のリストを引用符で囲む 

  4. 印刷要求が取り消されていることを確認します。

    $ lpstat -o printer-name
    

例 - 印刷要求を取り消す

次の例では、luna-3luna-4 の印刷要求を取り消します。

$ cancel luna-3 luna-4
request "luna-3" cancelled
request "luna-4" cancelled

次の例では、現在プリンタ luna 上で印刷中の印刷要求を取り消します。

# cancel luna
request "luna-9" cancelled

特定のユーザーからの印刷要求を取り消す方法

  1. (省略可能) 他のユーザーの印刷要求を取り消す場合は、スーパーユーザーまたは lp になります。

  2. cancel コマンドを使用して、特定のユーザーからの印刷要求を取り消します。

    $ cancel -u user-list [printer-name]
    -u user-list
    

    特定のユーザーの印刷要求を取り消す。 

    user-list では複数のユーザー名を指定できる。ユーザー名を区切るには空白またはコンマを使用する。空白を使用する場合は、ユーザー名のリストを引用符で囲む

    printer-name

    指定したユーザーの印刷要求を取り消したいプリンタを指定する 

    printer-name では複数のプリンタ名を指定できる。プリンタ名を区切るには空白またはコンマを使用する。空白を使用する場合は、プリンタ名のリストを引用符で囲む

    printer-name を指定しないと、ユーザーの印刷要求はすべてのプリンタで取り消される

例 - 特定のユーザーからの印刷要求を取り消す

次の例で、コマンドはプリンタ luna 上でユーザー george から依頼されたすべての印刷要求を取り消します。

# cancel -u george luna
request "luna-23" cancelled

次の例で、コマンドはユーザー george から依頼されたすべての印刷要求をすべてのプリンタ上で取り消します。

# cancel -u george
request "asteroid-3" cancelled
request "luna-8" cancelled

印刷要求の移動

プリンタの使用方法を変更する計画がある場合や、プリンタの使用を中止する場合は、それ以後の印刷要求を拒否するように LP 印刷サービスを設定し、現在待ち行列に入っている要求があればプリンタに移動するか取り消す必要があります。lpmove(1M) コマンドを使用すると、個々の印刷要求またはすべての印刷要求を別のローカルプリンタに移動できます。

要求 ID は印刷要求を移動しても変更されないので、ユーザーは引き続き各自の要求を調べることができます。新しく指定したプリンタでは満たせない要件 (ファイル内容形式やフォームなど) を持つ印刷要求は移動できません。この種の印刷要求は取り消さなければなりません。

印刷要求を別のプリンタに移動する方法

あるプリンタから別のプリンタにすべての要求を移動する場合は、要求 ID がわからなくてもかまいません。ただし移動する前に、影響を受ける印刷要求の数を調べておくとよいでしょう。

  1. 印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. (省略可能) 元のプリンタ上で印刷要求の要求 ID をチェックします。

    # lpstat -o printer-name1
    
  3. (省略可能) 宛先プリンタが印刷要求を受け付けているかどうかをチェックします。

    # lpstat -p printer-name2
    
    -p printer-name2
    

    印刷要求の移動先となるプリンタ名 

  4. 元のプリンタから宛先プリンタにすべての印刷要求を移動します。

    # lpmove printer-name1 printer-name2
    

    printer-name1

    すべての印刷要求の移動元となるプリンタ名 

    printer-name2

    すべての印刷要求の移動先となるプリンタ名 

    一部の要求を宛先プリンタ上で印刷できない場合は、元のプリンタの待ち行列内に残ります。要求 ID を使用すると、lpmove コマンドで特定の印刷要求を別のプリンタに移動することもできます。

  5. 元のプリンタ上で印刷要求の受け付けを開始します。

    すべての印刷要求を別のプリンタに移動すると、lpmove コマンドはそのプリンタへの印刷要求の受け付けを自動的に停止します。そのプリンタへの新しい印刷要求の受け付けを開始したい場合は、この手順が必要です。

    # accept printer-name1
    
  6. 次のコマンドを使用して、元のプリンタの待ち行列に残っている印刷要求をチェックします。

    $ lpq -P printer-name1
    

    次のコマンドを使用して、すべての指定した印刷要求が宛先のプリンタ待ち行列に移動していることを確認します。

    $ lpq -P printer-name2
    

例 - 印刷要求を別のプリンタに移動する

次の例では、lpmove コマンドにより印刷要求をプリンタ luna からプリンタ terra へ移動し、accept コマンドによりプリンタ luna に対し印刷要求の受け付けを再開するよう通知します。

# lpmove luna terra
# accept luna

印刷要求の優先順位の変更

印刷要求を出し終わったら、その優先順位を印刷サーバーの待ち行列内で次のように変更できます。

印刷要求の優先順位を変更する方法

  1. 印刷要求を停止中の印刷サーバーにスーパーユーザーまたは lp としてログインします。

  2. lpstat コマンドを使用して、優先順位を変更したい印刷要求の要求 ID を判別します。

    詳細は、「印刷要求の状態をチェックする方法」を参照してください。

  3. lp コマンドを使用して、印刷要求の優先順位を変更します。

    # lp -i request-id -H change-priority
    
    -i request-id
    

    変更したい印刷要求の要求 ID。

    このコマンドで複数の要求 ID を指定できる。空白またはコンマを使用する。空白を使用する場合は、要求 ID のリストを引用符で囲む 

    -H change-priority
    

    印刷要求の優先順位を変更する方法として、holdresumeimmediate のいずれかを指定する。

    change-priority に有効な値については、表 4-6 を参照

    また、lp-q コマンドを使用すると、指定した印刷要求の優先順位を変更できます。優先順位は、最上位の 0 から最下位の 39 までの間で変更できます。

例 - 印刷要求の優先順位を変更する

次の例では、コマンドは要求 ID が asteroid-79 の印刷要求を優先順位 1 に変更します。

# lp -i asteroid-79 -q 1