この章では、LP 印刷コマンドを使ってプリンタを管理する方法について説明します。
この章の内容は次のとおりです。
印刷の概要については、第 1 章Oracle Solaris オペレーティングシステムでの印刷の概要を参照してください。
ネットワーク上でのプリンタの定義の設定は、より効率的な印刷環境をユーザーに提供するための継続的な作業です。たとえば、サイトにあるすべてのプリンタに説明を付ければ、ユーザーはプリンタがどこにあるのかを見つけやすくなります。あるいは、プリンタのクラスを定義することにより、印刷要求を迅速に処理できます。LP 印刷コマンドを使用したプリンタ定義の設定方法については、「プリンタの設定時に PPD ファイルを指定する」を参照してください。
多くのプリンタ定義は、Solaris 印刷マネージャーを使用して設定またはリセットすることができます。詳細は、「Solaris 印刷マネージャーを使用したプリンタ定義の設定」を参照してください。
次の手順では、LP 印刷コマンドを使用してプリンタ定義を設定またはリセットする詳細な手順を説明します。これらの手順は、プリンタ定義をすばやく設定またはリセットする方法を示します。
# lpadmin -p printer-name -D "comment" |
説明 (備考欄) を追加するプリンタ名を指定します。
設置場所や管理担当者など、プリンタの特性を指定します。シェルが解釈する文字 (*、? 、\、! 、^ など) は、一重引用符で囲みます。
詳細は、lpadmin(1M) のマニュアルページを参照してください。
Description 情報をチェックします。
# lpstat -p printer-name -l |
次の例は、プリンタ luna の説明 (備考欄) を追加する方法を示しています。
# lpadmin -p luna -D "Nathans office" |
印刷コマンドを使用するときにプリンタ名を入力しなくてもすむように、ユーザーのデフォルトプリンタを指定できます。あるプリンタをデフォルトとして指定する前に、そのプリンタをシステム上の印刷サービスに認識させなければなりません。
次のいずれかを設定して、ユーザーのデフォルトプリンタを設定します。
LPDEST 環境変数
PRINTER 環境変数
ユーザーの .PRINTERS ファイルの _default 変数
システムのデフォルトプリンタ (lpadmin -d コマンドまたは Solaris 印刷マネージャーを使用)
アプリケーションがプリンタを指定する場合は、システムのデフォルトプリンタを設定したかどうかに関係なく、その出力先が印刷サービスに使用されます。アプリケーションにプリンタの出力先がない場合や、印刷コマンドの使用時にプリンタ名が指定されていない場合は、印刷コマンドはデフォルトプリンタを特定の順序で検索します。次の表は、システムのデフォルトプリンタの検索順序を示しています。
表 6–2 デフォルトプリンタの検索順序
検索順序 |
/usr/bin/lp コマンドを使用 |
LPD ベースの互換コマンド (lpr、lpq、および lprm) を使用 |
---|---|---|
1 |
LPDEST 変数 |
PRINTER 変数 |
2 |
PRINTER 変数 |
LPDEST 変数 |
3 |
システムのデフォルトプリンタ |
システムのデフォルトプリンタ |
# lpadmin -d [printer-name] |
-d printer-name はシステムのデフォルトプリンタとして割り当てるプリンタ名を指定します。printer-name を指定しなければ、システムはデフォルトプリンタなしで設定されます。
システムのデフォルトプリンタをチェックします。
# lpstat -d |
次の例は、プリンタ luna をシステムのデフォルトプリンタとして設定する方法を示しています。LPDEST または PRINTER 環境変数が設定されない場合に、luna がシステムのデフォルトプリンタとして使用されます。
# lpadmin -d luna # lpstat -d system default destination: luna |
バナーページには、印刷要求を出したユーザー、印刷要求 ID、要求の印刷日時が出力されます。また、バナーページには、ユーザーがプリントアウトを識別しやすいように変更可能なタイトルを付けることもできます。
バナーページは、印刷ジョブの所有者を簡単に識別できるようにします。これは、多数のユーザーが同じプリンタにジョブを依頼するときに特に便利です。ただし、バナーページを印刷すると用紙の消費量が増えますが、1 台のプリンタを使用するユーザーが少ない場合は必要ないことがあります。また場合によっては、バナーページを印刷しない方がよいこともあります。たとえば、プリンタに支払い小切手などの特殊な用紙やフォームが装着されている場合は、バナーページを印刷すると問題が起きることがあります。
デフォルトでは、印刷サービスはバナーページを強制的に印刷します。ただし、ユーザーが印刷要求を出すときにバナーページの印刷を抑制するかどうかを選択できるようにすることもできます。これは、lpadmin コマンドまたは Solaris 印刷マネージャーから設定することができます。ユーザーが選択できるようにする場合、ユーザーがバナーページの印刷を抑制するには、-o banner オプションを使用する必要があります。
また、バナーページが不要な場合、バナーページの印刷を抑制してまったく印刷されないようにすることもできます。バナーページの印刷は、lpadmin コマンドを使用するか Solaris 印刷マネージャーを通して抑制できます。
次の表は、バナーページ印刷の管理に使用されるコマンドオプションについて説明したものです。
表 6–3 バナーページの印刷
使用するコマンド |
バナーページの印刷 |
変更 |
---|---|---|
lpadmin -p printer -o banner または lpadmin -p printer -o banner=always |
常に行われる |
一般ユーザーが -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 |
無効 |
通常ユーザーの場合は、なし。スーパーユーザー (root) または lp ユーザーの場合、このオプションを上書きしてバーストページを生成できる。 |
バナーページを選択可能にします。
# lpadmin -p printer-name -o banner=optional |
バナーページ印刷を選択可能にするプリンタ名を指定します。
ユーザーが印刷要求を出すときにバナーページなしを指定できるようにします。
バナーページが選択可能であるかどうかを検証します。次のコマンド出力には、「Banner not required」という行が入っています。
# lpstat -p printer-name -l |
次の例は、プリンタ luna のバナーページを選択可能にする方法を示しています。
# lpadmin -p luna -o banner=optional |
バナー印刷を抑制します。
# lpadmin -p printer-name -o banner=never |
バナーページ印刷を抑制するプリンタ名を指定します。
どのような状況でもバナーページ印刷を無効にします。
バナーページ印刷が抑制されているかどうかを検証します。
# lpstat -p printer-name -l |
次のコマンド出力には、「Banner not printed」という行が入っています。
プリンタに印刷要求を送ってバナーページが印刷されないことを確認します。
次の例は、プリンタ luna のバナーページを印刷しないようにする方法を示しています。
# lpadmin -p luna -o banner=never |
LP 印刷サービスを使用すると、複数のローカルプリンタを 1 つのクラスにグループ化できます。この作業は、lpadmin -c コマンドを使用しなければ実行できません。
プリンタクラスを設定すると、ユーザーは印刷要求の出力先として (個々のプリンタではなく) そのクラスを指定できます。そのクラスで空いている最初のプリンタが印刷に使用されます。その結果、プリンタはできる限りビジーに保たれるので、応答時間が短縮されます。
印刷サービスに認識されるデフォルトのプリンタクラスはなく、定義したプリンタクラスのみが存在することになります。
プリンタクラスを定義するには、次の 3 つの方法があります。
プリンタタイプ別 – PostScript プリンタなど。
場所別 – 5 階のプリンタなど。
作業グループまたは部署別 – 経理部など。
また、1 つのクラスには特定の順序で使用される複数のプリンタを含めることができます。LP 印刷サービスでは、常に各プリンタがクラスに追加された順番に従って利用できるプリンタをチェックします。したがって、最初に高速プリンタにアクセスしたい場合は、高速プリンタを低速プリンタよりも先にクラスに追加します。その結果、高速プリンタで最大限の印刷要求が処理されることになります。低速プリンタは、高速プリンタが使用されているときのバックアッププリンタとして確保されます。
印刷要求の負荷は、ローカルプリンタのクラス内のプリンタ間でのみ調整されます。
クラス名も、プリンタ名と同様に一意でなければなりません。クラス名は 14 文字以内の英数字で、下線を使用できます。
プリンタクラスは定義しなくてもかまいません。プリンタクラスを使用するとネットワーク上のユーザーに利点があると判断した場合にのみ、クラスを追加してください。
# lpadmin -p printer-name -c printer-class |
プリンタのクラスに追加するプリンタ名を指定します。
プリンタのクラスの名前を指定します。
プリンタがプリンタクラスの中にあることを確認します。
# lpstat -c printer-class |
次の例は、プリンタ luna をプリンタクラス roughdrafts に追加する方法を示しています。
# lpadmin -p luna -c roughdrafts |
事前に選択しておくと、LP 印刷サービスはプリンタ障害を検出したときに通知できます。プリンタの障害通知を受け取る方法として、次のいずれかの方法を、lpadmin -A コマンドまたは Solaris 印刷マネージャーを使用して選択することができます。
root がログインしている端末にメッセージを書き込む
root に電子メールを送る
通知しない
ただし、lpadmin -A コマンドを使用すると、選択したプログラムで指定されるメッセージを受信するようにすることもできます。また、lpadmin -A コマンドで、すでに知っているエラーに関する通知を選択的に抑制することもできます。
障害通知を配信するプログラムを指定しなければ、障害警告の内容は事前に定義済みのメッセージになります。このメッセージは、プリンタが印刷を停止しており、解決が必要であることを示します。
次の表は、lpadmin -A コマンドでプリンタに設定できる警告値を示しています。 これらの警告値は、印字ホイール、フォントカートリッジ、フォームについても設定できます。
表 6–4 プリンタ障害の警告値
-A alert の値 |
説明 |
---|---|
'mail [username]' |
警告メッセージを、印刷サーバー上の root か lp、または、指定したユーザー名 username に電子メールで送信します。 |
'write [user-name]' |
警告メッセージを、印刷サーバー上の root か lp のコンソールウィンドウ、または指定したユーザー名 username のコンソールウィンドウに送信します。指定したユーザーが警告メッセージを受け取るには、印刷サーバーにログインしている必要があります。 |
'command' |
警告ごとに指定の command ファイルを実行します。環境変数とカレントディレクトリは保存され、ファイルの実行時に復元されます。 |
quiet |
障害が解決されるまで警告を停止します。この値は、ユーザー (root または指定したユーザー) が繰り返し警告を受け取るときに使用します。 |
none |
警告を送信しません。プリンタの障害警告を指定しない場合は、これがデフォルト値です。 |
# lpadmin -p printer-name -A alert [-W minutes] |
障害警告が正しく送信されたかどうかを検証します。
# lpstat -p printer-name -l |
次の例は、プリンタ mars の障害警告をユーザー joe に電子メールで送信する設定方法を示しています。通知は 5 分ごとに送信されます。
# lpadmin -p mars -A 'mail joe' -W 5 |
次の例は、プリンタ venus の障害警告をコンソールウィンドウに送信する設定方法を示しています。通知は 10 分ごとに送信されます。
# lpadmin -p venus -A write -W 10 |
次の例は、プリンタ mercury の障害警告を停止する方法を示しています。
# lpadmin -p mercury -A none |
次の例は、プリンタ venus の障害が解決するまで、障害警告を停止する方法を示しています。
# lpadmin -p venus -A quiet |
障害通知を送信しないことを選択した場合でも、問題を解決するためにプリンタ障害を検出することができます。LP 印刷サービスは、障害のあるプリンタを継続して使用しません。プリンタ障害の警告に加えて、印刷要求が必要とするときに、印字ホイール、フォントカートリッジ、およびフォームを取り付けるように知らせる警告も設定できます。
プリンタの障害回復オプションを定義するには、lpadmin -F コマンドを使用する必要があります。これは、Solaris 印刷マネージャーではできません。
プリンタ障害は、用紙切れやトナーカートリッジの交換が必要であるなど、きわめて単純な場合があります。より重大な問題としては、完全なプリンタ障害や電源障害などがあります。
プリンタ障害を解決すると、障害が発生したときに有効だった印刷要求は、次のいずれかの方法で印刷を開始します。
印刷を最初から開始する
印刷を停止したページの先頭から印刷を再開する
プリンタを使用可能にした後に、印刷を停止したページの先頭から印刷を再開する
印刷が停止したページの先頭から印刷を継続するには、LP 印刷サービスは別の印刷フィルタを必要とします。この印刷フィルタは、デフォルトの印刷フィルタによって設定される制御シーケンスを記録します。プリンタは、これらの制御シーケンスを使用してページ境界を追跡します。指定した印刷フィルタで回復処理を実行できなければ、LP 印刷サービスから通知されます。フィルタの作成方法については、「新しい印刷フィルタを作成する方法」を参照してください。
プリンタ障害を解決した直後に印刷を再開したい場合は、enable コマンドを使用してプリンタを使用可能にします。
次の表は、lpadmin -F コマンドでプリンタに設定できる障害回復値を示しています。
表 6–5 プリンタ障害回復の値
-F recover-options の値 |
説明 |
---|---|
beginning |
障害回復後に、ファイルの先頭から印刷を再開します。 |
continue | |
wait |
障害回復後に、プリンタを使用可能にするまで印刷が停止されます。enable コマンドでプリンタを使用可能にすると、印刷は停止されたページの先頭から始まります。この回復オプションには印刷フィルタが必要です。 |
印刷サーバーにスーパーユーザーまたは lp としてログインするか、同等の役割になります。
# lpadmin -p printer-name -F recovery-options |
障害からの回復方法を指定するプリンタ名を指定します。
次の 3 つの有効な回復オプションのどれかを指定します。 beginning、continue、または wait。
詳細は、lpadmin(1M) のマニュアルページを参照してください。
プリンタの障害回復が正常に設定されたかどうかを検証します。
# lpstat -p printer-name -l |
次の例は、印刷が停止したページの先頭から再開させるようにプリンタ luna を設定する方法を示しています。
# lpadmin -p luna -F continue |
利用できるプリンタの一部またはすべてにアクセスできるユーザーを制限する必要がある場合があります。たとえば、一部のユーザーが高品質プリンタ上で印刷できないようにして経費を抑えることができます。プリンタへのユーザーアクセスを制限するには、印刷サーバー上で lpadmin -u コマンドを使用して「許可」リストと「拒否」リストを作成します。Solaris 印刷マネージャーを使用すると、「許可」リストのみを作成できます。どちらのリストも作成しなければ、プリンタはそこにアクセスできる全ユーザーが利用できます。
許可リストには、指定したプリンタへのアクセスを許可されるユーザー名が入っています。拒否リストには、指定したプリンタへのアクセスを拒否されるユーザー名が入っています。
許可リストと拒否リストには、次の規則が適用されます。
許可リストと拒否リストの規則 |
ユーザアクセスの制限 |
---|---|
許可リストも拒否リストも作成しない、または、両方のリストを空にする。 |
そのプリンタには全ユーザーがアクセスできます。 |
許可リストで all を指定する。 |
そのプリンタには全ユーザーがアクセスできます。 |
拒否リストで all を指定する。 |
サーバー上の root と lp 以外の全ユーザーのアクセスが拒否されます。 |
許可リストにエントリを作成する。 |
拒否リストは無視されます。リストに指定されているユーザーだけがプリンタにアクセスできます。 |
拒否リストを作成し、許可リストは作成しないか許可リストを空にする。 |
拒否リストで指定されたユーザーはプリンタにアクセスできません。 |
プリンタへのアクセスを制御しているのは印刷サーバーなので、許可リストと拒否リストを作成できるのは印刷サーバー上でだけです。許可リストと拒否リストを作成した場合、印刷サーバーは、プリンタへのユーザーアクセスを排他的に制御します。
次の表は、プリンタへのユーザーアクセスを制限するために許可リストまたは拒否リストに追加できる値を示します。
表 6–6 許可リストと拒否リストの値
user-list の値 |
説明 |
---|---|
user |
任意のシステム上の特定ユーザー |
all |
すべてのシステム上の全ユーザー |
none |
すべてのシステム上の全ユーザーが該当しない |
system!user |
特定システム上の特定ユーザー |
!user |
ローカルシステム上の特定ユーザー |
all!user |
任意のシステム上の特定ユーザー |
all!all |
すべてのシステム上の全ユーザー |
system!all |
特定システム上の全ユーザー |
!all |
ローカルシステム上の全ユーザー |
# lpadmin -p printer-name -u allow:user-list [deny:user-list] |
許可または拒否アクセスリストを適用するプリンタ名を指定します。
許可アクセスリストに追加するユーザー名を指定します。このコマンドで複数のユーザーを指定できます。空白またはコンマを使用して名前を区切ります。空白を使用する場合は、名前のリストを引用符で囲みます。
拒否ユーザーアクセスリストに追加するユーザー名を指定します。このコマンドで複数のユーザーを指定できます。空白またはコンマを使用して名前を区切ります。空白を使用する場合は、名前のリストを引用符で囲みます。
指定したユーザーが、印刷サーバーの次のどちらかのファイル内で、プリンタの許可または拒否リストに追加されます。
許可リストのuser-list に none を指定した場合、印刷サーバー用に次のファイルは作成されません。
次のコマンド出力で、「Users allowed」または「Users denied」見出しに続く情報が正しいことをチェックします。
# lpstat -p printer-name -l |
次の例は、ユーザー nathan と george にだけプリンタ luna へのアクセスを許可する方法を示しています。
# lpadmin -p luna -u allow:nathan,george |
次の例は、ユーザー nathan と george のプリンタ asteroid へのアクセスを拒否する方法を示しています。
# lpadmin -p asteroid -u deny:"nathan george" |
作業 |
説明 |
説明 |
---|---|---|
PPD ファイルを使用する印刷待ち行列の定義を設定します。 |
-o オプションを指定して lpadmin コマンドを使用することで、印刷待ち行列と関連付けられた PPD ファイルに定義されているデフォルト値を変更します。 | |
印刷待ち行列を作成するために PPD ファイルが使用されたかどうかを調べます。 |
印刷待ち行列を作成するために PPD ファイルが使用されたかどうか、つまり印刷待ち行列に PPD ファイルが関連付けられているかどうかを調べるには、lpstat コマンドを使用します。 |
印刷待ち行列の設定プロセスの実行中に、印刷待ち行列の機能を記述する PPD ファイルを、その印刷待ち行列と関連付けることができます。PPD ファイルに記述されているデフォルト値は、多くの場合、サイトの推奨設定とは一致しません。たとえば、両面印刷機能を常にオンにしたり、常に A4 サイズの用紙に印刷したりすることが必要になります。これらのデフォルト値は、PPD ファイルを直接編集することで変更できます。ただし、もっとも簡単で時間のかからない方法は、-o オプションを指定した lpadmin コマンドを使用して、変更を加えることです。
共通の PPD ファイルの値には、次のものがあります。
PageSize
可能な選択肢の例として、次のものがあります。
レター
リーガル
A4
B5
Env10
InputSlot
可能な選択肢の例として、次のものがあります。
Tray1
Tray2
Tray3
手動
両面印刷
可能な選択肢の例として、次のものがあります。
なし
DuplexNoTumble
DuplexTumble
この手順では、機能を記述するために PPD ファイルを使用する印刷待ち行列の、デフォルト値の設定方法を示します。
最初に PPD ファイルをチェックして、上書きできる値を確認します。PPD ファイルに関する情報を表示するには、more または less コマンドを使用するか、テキストエディタでファイルを開きます。
次に例を示します。
$ more /etc/lp/ppd/print-queue.ppd |
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
目的のオプションを設定します。
# lpadmin -p print-queue -o key=value |
値を変更するプリンタ名または印刷待ち行列を指定します。
プリンタ機能の調整、プリンタポートの特性の調整、ネットワークプリンタの構成、およびバナー使用の制御のためのオプションを指定します。
オプションのキーと値のペアを指定します。
特定のプリンタに使用できるキーと値のペアのセットは、印刷待ち行列と関連付けられている PPD ファイルの内容によって異なります。
たとえば、両面印刷機能を設定するには、次のように入力します。
# lpadmin -p print-queue -o Duplex=DuplexNoTumble |
給紙トレイの設定を変更するには、次のように入力します。
# lpadmin -p print-queue -o InputSlot=Tray2 |
PPD の file/foomatic オプションの場合は、この方法でデフォルト値を設定できます。
印刷待ち行列の機能をチェックして、オプションが正しい値に設定されたことを確認します。
# lpstat -p print-queue -l |
# lpadmin -p hp4550 -o Media=A4 -o InputSlot=Tray2 # lpadmin -p hp4550 -o PageSize=A4 # lpstat -p hp4550 -l printer hp4550 idle. enabled since December 5, 2006 6:38:50 PM CET. available. Form mounted: Content types: application/postscript Description: Connection: Interface: /usr/lib/lp/model/netstandard_foomatic PPD: /usr/lib/lp/model/ppd/system/foomatic/ \ HP/HP-Color_LaserJet_4550-Postscript.ppd.gz On fault: write root After fault: continue Users allowed: (all) Forms allowed: (none) Media supported: Letter A4 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5 EnvMonarch Executive Legal Banner not required Character sets: (none) Default pitch: Default page size: Default port setting: Options: PageSize=A4, Media=A4, InputSlot=Tray2, \ dest=192.168.245.62:9100, protocol=tcp # uname -a SunOS shuttle 5.11 snv_52 i86pc i386 i86pc # lpstat -p hp4550 -l printer hp4550 idle. enabled since December 5, 2006 6:38:50 PM CET. available. Form mounted: Content types: application/postscript Description: Connection: Interface: /usr/lib/lp/model/netstandard_foomatic PPD: /usr/lib/lp/model/ppd/system/foomatic/ \ HP/HP-Color_LaserJet_4550-Postscript.ppd.gz On fault: write root After fault: continue Users allowed: (all) Forms allowed: (none) Media supported: Letter A4 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5 EnvMonarch Executive Legal Banner not required Character sets: (none) Default pitch: Default page size: Default port setting: Options: dest=192.168.245.62:9100, protocol=tcp |
PPD ファイルを使用して印刷待ち行列を作成した場合、 lpstat コマンドの出力には、その待ち行列が使用するように構成されている PPD ファイルが表示されます。PPD ファイルを使用せずに印刷待ち行列を作成した場合、lpstat コマンドの出力は以前と同じです。PPD ファイルが使用されていることを示す lpstat コマンド出力例については、「プリンタの状態をチェックする方法」を参照してください。
次の例では、Mitsubishi-CP50_Color_Printer-cp50.ppd.gz という PPD ファイルを使用して印刷待ち行列が構成されていることが、lpstat コマンドの出力からわかります。
# lpstat -l -p paper printer paper is idle. enabled since Tue 30 Mar 2004 01:48:38 PM PST available. Form mounted: Content types: any Printer types: unknown Description: Connection: direct Interface: /usr/lib/lp/model/standard_foomatic PPD: /path/Mitsubishi-CP50_Color_Printer-cp50.ppd.gz After fault: continue Users allowed: (all) Forms allowed: (none) Banner required Character sets: (none) Default pitch: Default page size: Default port settings# lpstat l p <queue> |