CUPS は Common UNIX Printing System の略です。
lpadmin は、CUPS が提供するプリンターとクラス キューを構成するために使用されるコマンド ライン ツールです。
CUPS を実行しているシステムは、クライアント コンピューターからの印刷ジョブを受け入れて処理し、適切なプリンターに送信できるホストです。サーバーのデフォルトのプリンターまたはクラスの設定にも使用できます。
このチュートリアルでは、lpadmin コマンドの例を使用して、Linux 環境で新しいプリンターを追加し、プリンター オプションを設定し、プリンターを管理する方法について説明します。
1.新しいプリンターの追加
「HPLaserJetP3015」という名前の新しいネットワーク プリンターを追加するには、以下に示すように、-p オプションを指定して lpadmin コマンドを使用します。
# lpadmin -p HPLaserJetP3015 -v socket://19.86.82.172 -P /usr/share/cups/model/HP/LaserJet_P3005-Postscript.ppd # lpstat -v device for HPLaserJetP3015: socket://19.86.82.172
プリンターが現在構成されているかどうかを確認するには、次の例に示すようにコマンドを使用できます。
# lpstat -p HPLaserJetP3015 -l printer HPLaserJetP3015 is idle. enabled since Sun Jan 11 16:11:41 2015
2. PPD とログ ファイル
上記の例では、PPD ファイル (PostScript Printer Description とも呼ばれます) はベンダーによって作成され、PostScript プリンターで使用できる機能のセット全体を記述しており、通常は /usr/share/cups/model/ ディレクトリの下にあります。 .
プリンタの設定に問題がある場合は、以下の場所にあるログでエラー メッセージを確認してください。この場所は、Linux のディストリビューションによって異なる場合があります。
# ls -l /var/log/cups/* -rw-r--r-- 1 root lp 6851 Jan 11 16:19 /var/log/cups/access_log -rw-r--r-- 1 root lp 13207 Jan 11 16:19 /var/log/cups/error_log
3.パラレル ポートでプリンターを構成
パラレル ポート (/dev/lp0) でプリンターを構成するには、次の例に示すように lpadmin コマンドを使用します。
# lpadmin -p HPDESKJET882 -v parallel:/dev/lp0 -m /usr/share/cups/model/HP/DeskJet_882C-cdj880.ppd
4.プリンターのセットアップに使用可能なすべてのポートを表示
また、lpinfo コマンドを使用して、プリンターの構成に使用できるすべてのポートまたはインターフェースを表示できます。
# lpinfo -v network socket direct hp network http network ipp network lpd direct parallel:/dev/lp0 direct scsi network tpvmgp network tpvmlp network smb
5.複数のプリンター クラス
CUPS は、プリンターがクラスに追加された順序で常に使用可能なプリンターをチェックします。
クラスに 1 つ以上のプリンターを追加できます。プリンターの 1 つが使用できなくなると、クラスで定義されている他のプリンターが印刷ジョブの要求を処理します。
クラスにプリンターを追加することは必須ではありません。 1 つのプリンター クラス自体を他のクラスのメンバーにすることができるため、印刷の高可用性のためにプリンター クラスを定義することができます。
プリンター クラスを構成すると、単一のプリンターを指すのと同じ方法でプリンター クラスに印刷できます。
たとえば、2 台の Laserjet プリンターと 2 台の deskjet プリンターがあるとします。 2 つの Laserjet プリンターで構成される「Class-Laserjet」と呼ばれるクラスを作成し、「Class-Deskjet」プリンターと呼ばれる別のクラスを作成してから、これら 2 つのクラスを含む別のクラスを作成できます。
これにより、laserjet プリンターと deskjet プリンターの両方がダウンしても、もう一方のクラスが印刷ジョブを処理します。
6.プリンタをクラスに追加
クラスにプリンターを追加するには、以下のコマンドを使用します。
# lpadmin -h localhost -p HPLaserJetP3015 -c myclass
プリンターがプリンター クラスにあるかどうかを確認するには:
# lpstat -c myclass members of class myclass: HPLaserJetP3015
7.クラスからプリンターを削除
クラスからプリンターを削除するには、次の例に示すように lpadmin コマンドを使用できます:
この例では、myclass に 2 つのプリンターがあります:
# lpstat -c myclass members of class myclass: HPLaserJetP3015 HPDESKJET882
以下に示すように、myclass から HPDESKJET882 プリンターを削除します。
# lpadmin -p HPDESKJET882 -r myclass
削除すると、HP レーザー ジェット プリンターだけが表示されます。
# lpstat -c myclass members of class myclass: HPLaserJetP3015
8.プリンター クラス全体を削除
-x オプションを使用すると、クラスを削除できます。以下に示すように。
# lpstat -c myclass members of class myclass: HPLaserJetP3015 # lpadmin -x myclass # lpstat -c myclass lpstat: Unknown destination "myclass"!
クラスを削除しても、プリンター構成はまだ存在することに注意してください。
9.印刷オプションの変更
プリンターの印刷オプションを変更するには、以下のコマンドを実行できます。
以下に示すように、lpoptions コマンドを使用して、プリンターで使用可能なすべてのオプションを一覧表示します。
この例では、アクティブ化されたすべてのオプションの前にアスタリスク記号が付いていることがわかります。アスタリスクがない場合は、デフォルト設定が使用されます。
# lpoptions -p HPLaserJetP3015 -l PageSize/Page Size: *A4 Letter 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5 EnvMonarch Executive Legal PageRegion/PageRegion: A4 Letter 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5 EnvMonarch Executive Legal Resolution/Resolution: 150x150dpi 300x300dpi *600x600dpi 1200x1200dpi InputSlot/Media Source: *Default Tray1 Tray2 Tray3 Manual Duplex/Double-Sided Printing: DuplexNoTumble DuplexTumble *None
10.プリンターの解像度を変更
プリンターの解像度を 300x300dpi に変更するには、以下に示すように lpadmin コマンドを使用できます:
# lpadmin -p HPLaserJetP3015 -o Resolution=300x300dpi # lpoptions -p HPLaserJetP3015 -l
上記の例で説明したように、–o オプションを指定して lpadmin を使用して、任意のプリンターに設定できるその他のオプションを次に示します。
- job-k-limit=value – ユーザーごとのクォータのキロバイト制限を設定します。値はキロバイト単位の整数です。
- job-page-limit=value – ユーザーごとのクォータのページ制限を設定します。値は、印刷できる整数のページ数です。両面ページは 2 ページとしてカウントされます。
- job-quota-period=value – ユーザーごとのクォータの課金期間を設定します。値は整数の秒数です。
- job-sheets-default=banner – 印刷ジョブに使用するデフォルトのバナー ページを設定します。
- name=value – プリンターの PPD オプションを設定します。 PPD オプションは、lpoptions(1) コマンドで -l オプションを使用して一覧表示できます。
- name-default=value – プリンターのデフォルトのサーバー側オプションを設定します。
- port-monitor=name – 指定されたポート モニターは、プリンターの PPD ファイルにリストされている必要があります。
- printer-error-policy=name – プリンター バックエンドがジョブをプリンターに送信できない場合に使用するエラー ポリシーを設定します。
- printer-is-shared=true/false – プリンターを共有/公開または非共有/非公開に設定します。
- printer-op-policy=name – プリンターに関連付けられた IPP 操作ポリシーを設定します。この名前は、ポリシー セクションの cupsd.conf で定義する必要があります。デフォルトの運用ポリシーは「default」です。
11.設定ファイルからプリンターを削除
プリンター構成ファイルから CUPS プリンターを削除するには、以下に示すように -x オプションを使用できます。
# lpstat -v device for HPLaserJetP3015: socket://19.86.82.172 # lpadmin -x HPLaserJetP3015 # lpstat -v lpstat: No destinations added.
12.ユーザーまたはグループによるプリンタ オプションの設定を許可/拒否
lpadmin コマンドを使用して、個々のユーザーまたはグループがプリンター オプションを構成できるようにすることができます。
次のコマンドは、ユーザー karthik が HPLaserJetP3015 プリンターのプリンター オプションを構成できるようにします:
# lpadmin -p HPLaserJetP3015 -u allow:karthik
以下のコマンドを使用して、ユーザーが設定/オプションを変更したり、プリンターを構成したりできないようにすることもできます。
次のコマンドは、ユーザー karthik が HPLaserJetP3015 プリンターでプリンター オプションを構成することを拒否します:
# lpadmin -p HPLaserJetP3015 -u deny:karthik
アクセスを許可する必要があるグループがある場合は、@ 記号の前にグループ名を使用できます。複数のユーザー名またはグループをコンマで区切って指定できます。
たとえば、次の例では、sysadmin グループのユーザーがプリンター オプションを構成できるようになります。
# lpadmin -p HPLaserJetP3015 -u allow:@sysadmin
以下は、開発者グループのユーザーがプリンター オプションを構成することを拒否します。
# lpadmin -p HPLaserJetP3015 -u deny:@developer