108.4 レッスン 1
Certificate: |
LPIC-1 |
---|---|
Version: |
5.0 |
Topic: |
108 基本的なシステムサービス |
Objective: |
108.4 プリンタと印刷の管理 |
Lesson: |
1 of 1 |
はじめに
コンピュータの登場によってもたらされた “ペーパーレス社会” 宣言は、今のところ誤りであることが証明されています。多くの組織は、依然として印刷された、つまり “ハードコピー” の情報に依存しています。この事実は、コンピュータユーザーにとっては印刷方法を知ることが、システム管理者にとってはコンピュータとプリンタを連携させる方法を知ることが、重要であることを示しています。 Linuxでは、他の多くのOSと同様に、CUPS(Common Unix Printing System)ソフトウェアスタックが、コンピュータからの印刷とプリンタの管理を行います。ここでは、CUPSを使ってLinuxがファイルを印刷する方法の概要を示します:
-
印刷するファイルをユーザーが送信する。
-
CUPSデーモン
cupsd
が、印刷ジョブを スプール する。印刷ジョブにはIDが割り当てられ、ジョブが投入された印刷キューと、ドキュメントの名前が関連付けられる。 -
CUPSは、インストールされている filters を使って、プリンタが理解できるフォーマットのファイルを生成する。
-
CUPSは、フォーマット済みのファイルをプリンタに送信する。
これらの手順について詳しく説明し、Linuxでプリンタをセットアップして管理する方法も説明します。
CUPSサービス
ほとんどのデスクトップ版Linuxには、CUPSパッケージがデフォルトでインストールされています。ディストリビューションによりますが、最小構成のLinuxではCUPSパッケージがインストールされていないこともあります。Debianシステムでは、以下のようにして基本的なCUPSをインストールできます。
$ sudo apt install cups
Fedoraシステムでも同様に、インストールは簡単です。FedoraなどのRed Hatベースのディストリビューションでは、インストール後に手動でCUPSサービスを起動する必要があります。(訳注: 常にサービスを起動したいときは、systemctl enable
でサービス起動を有効化しておきましょう)。
$ sudo dnf install cups ... $ sudo systemctl start cups.service
インストールしたら、systemctl
コマンドで、CUPSサービスが実行されていることを確認します。
$ systemctl status cups.service ● cups.service - CUPS Scheduler Loaded: loaded (/lib/systemd/system/cups.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-06-25 14:35:47 EDT; 41min ago Docs: man:cupsd(8) Main PID: 3136 (cupsd) Tasks: 2 (limit: 1119) Memory: 3.2M CGroup: /system.slice/cups.service ├─3136 /usr/sbin/cupsd -l └─3175 /usr/lib/cups/notifier/dbus dbus://
他の多くのデーモンと同様に、一連の設定ファイルでCUPSの動作を調整します。システム管理者にとって重要なものを以下に示します:
/etc/cups/cupsd.conf
-
このファイルには、CUPSサービス本体の設定が含まれます。CUPSの設定ファイルはApache Webサーバーの設定ファイルとよく似た構文を使用しています。
cupsd.conf
ファイルには、CUPSのWebインターフェースが有効かどうか、印刷キューへのアクセス権限、デーモンが使用するロギングのレベルなどの設定が含まれます。 /etc/printcap
-
CUPSが登場する前に使われていたLPD(Line Printer Daemon)プロトコルが使用していたレガシーファイルで、互換性のために作成されます。多くの場合は
/run/cups/printcap
へのシンボリックリンクで、各行に1つのプリンタ情報が含まれます。 /etc/cups/printers.conf
-
CUPSシステムで使用できるように構成したプリンタが含まれます。それぞれのプリンタとその印刷キューが、
<Printer></Printer>
節で囲まれます。このファイルから、/etc/printcap
に置かれるプリンタの一覧が作られます。WarningCUPSサービスの実行中に、
/etc/cups/printers.conf
ファイルを直接変更してはいけません。 /etc/cups/ppd/
-
このディレクトリには、プリンタのPPD(PostScript Printer Description)ファイルが置かれます。PPDファイル(サフィックスが
.ppd
)は、各プリンタの機能を示した、所定のフォーマットのプレーンテキストファイルです。
CUPSサービス、Apache 2サービスとほぼ同様のロギングを行います。/var/log/cups/
内に保存される access_log
、page_log
、および error_log
がログファイルです。access_log
には、CUPS Webインターフェースへのアクセスと、そこで実行されたプリンタ管理などの操作が記録されます。page_log
は、CUPSが管理する印刷キューに送られた印刷ジョブの記録です。error_log
には、印刷ジョブの失敗や、Webインターフェイスによるエラーが記録されます。
次に、CUPSサービスの管理に使用するツールとユーティリティについて説明します。
Webインターフェース
前述したのように、/etc/cups/cupsd.conf
ファイルで、CUPSのWebインターフェースの有効・無効を設定します。次のようにオプションを指定します:
# Web interface setting... WebInterface Yes
Webインターフェースを有効にすると、ブラウザからデフォルトURLの http://localhost:631
にアクセスすることでCUPSを管理できます。デフォルトでは、ユーザーがプリンタと印刷キューを表示できますが、設定を変更する場合は、rootアクセス権を持つユーザーで認証する必要があります。管理機能へのアクセスを制限するためには、/etc/cups/cupsd.conf
ファイルに次のスタンザを置きます。
# All administration operations require an administrator to authenticate... <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default> AuthType Default Require user @SYSTEM Order deny,allow </Limit>
この設定を詳しく説明します:
AuthType Default
-
権限を必要とする場合に、Basic認証を使用します。
Require user @SYSTEM
-
管理者権限を持つユーザーのみが操作できることを示します。これを
@groupname
に変更すれば、グループgroupname
のメンバーがCUPSサービスを管理できます。また、Require user carol, tim
のようにユーザーのリストで管理者を指定することもできます。 Order deny,allow
-
Apache 2の設定オプションと同様に、ユーザー(またはグループのメンバー)として認証されない限り、アクセスを拒否します。
CUPSのWebインターフェイスを無効にするには、まずCUPSサービスを停止して、WebInterface
オプションを Yes
から No
に変更し、CUPSサービスを再起動します。
CUPSのWebインターフェースは、CUPSシステムの機能ごとにナビゲーションタブに分割された、シンプルなWebサイトです。 Webインターフェースのタブには、以下のものがあります:
- Home(ホーム)
-
Homeタブには、インストールされているCUPSのバージョンが表示されます。また、次のようなセクションに整理したヘルプへのメニューを表示します。
- CUPS for Users
-
CUPSの概要、コマンドラインからの印刷とオプションなど
- CUPS for Administrator
-
プリンタの追加や管理インターフェイス、ネットワークプリンタの操作など
- CUPS for Developer
-
CUPS自体の開発、プリンタ用PPDファイルの作成方法など
- Administration(管理)
-
Administorationタブも、セクションに分かれています。
- Printer
-
管理者は、新しい(ローカル)プリンタを追加したり、(ネットワーク)プリンタを見つけたり、インストール済みのプリンタを管理できます。
- Class(クラス)
-
新しいクラスを作成および管理するためのセクションです。クラスとは、ポリシーグループとプリンタを関連付ける仕組みです。ある部署に属するユーザーだけが印刷できるクラスに、あるフロアにある一群のプリンタを追加するといった場合に使用します。あるいは、印刷できるページ数に制限を設けたクラスを設けることなどもできます。CUPSのインストール時にはクラスが定義されていないので、管理者が定義します。
- Job(ジョブ)
-
管理者は、CUPSが管理するすべてのプリンタの、キューにあるすべての印刷ジョブを表示できます。
- Server(サーバー)
-
管理者は、
/etc/cups/cupsd.conf
ファイルを変更することができます。また、プリンタをネットワーク上で共有する、高度な認証を利用する、リモートプリンタ管理を許可するといったオプションを選択することもできます。
- Class(クラス)
-
プリンタクラスが定義されている場合には、このページに表示されます。プリンタクラス毎に、すべてのプリンタをまとめて管理するオプションと、クラスのプリンタキューにあるすべてのジョブを表示するオプションがあります。
- Help(ヘルプ)
-
このタブには、そのシステムで利用可能なすべてのドキュメントへのリンクがあります。
- Job(ジョブ)
-
このタブでは、印刷ジョブを検索したり、すべての印刷ジョブを一覧表示したりできます。
- Printer(プリンタ)
-
このタブには、システムで利用可能なすべてのプリンタと、それらの概要ステータスが一覧表示されます。表示されているプリンタをクリックすると、それぞれのプリンタの管理ページに移動します。このタブのプリンタ情報は、
/etc/cups/printers.conf
ファイルから取得されます。
プリンタのインストール
CUPSのWebインターフェイスを使って、システムにプリンタキューを簡単に追加できます。
-
Administration タブをクリックし、Add Printer ボタンをクリックします。
-
次のページでは、プリンタの接続方法に応じてさまざまなオプションが提示されます。ローカルプリンタの場合は、接続ポートや、インストール済みのプリンタソフトウェアなどが提示され、適当なオプションを選択します。また、CUPSはネットワークプリンタ検出して、ここに表示します。プリンタがサポートするネットワーク印刷プロトコルに応じて、直接接続するオプションを選択することもできます。適切なオプションを選択して Continue ボタンをクリックします。
-
次のページでは、プリンタの名前、説明、設置場所(“バックオフィス” や “フロントデスク” など)を指定します。プリンタをネットワークで共有する場合は、このページでそのオプションを選択することもできます。入力したら Continue ボタンをクリックします。
-
次のページでは、プリンタのメーカーとモデルを選択します。CUPSはデータベースを検索して、プリンタに適したドライバーとPPDファイルを探します。プリンタベンダーがPPDファイルを提供している場合は、その位置を指定します。指定が終わったら Add Printer ボタンをクリックします。
-
最後のページでは、ページサイズや、印刷解像度などのデフォルトオプションを設定します。Set Default Options ボタンをクリックすると、プリンタがシステムにインストールされます。
Note
|
デスクトップ版Linuxの多くは、プリンタをセットアップするためのさまざまなツールを備えています。GNOMEとKDEデスクトップ環境には、プリンタのインストールと管理用の独自アプリケーションが組み込まれています。また、いくつかのディストリビューションでは、別のプリンタ管理アプリケーションが採用されています。しかしながら、印刷するユーザーが多いサーバーでは、CUPSのWebインタフェースが最適なツールとなることでしょう。 |
レガシーなLPD/LPRコマンドを使用して、プリンタのキューをセットアップすることもできます(訳注: 以下に取り上げるコマンドはCUPS以前の印刷システムに由来する レガシー コマンドです。コマンドラインでプリンタを設定・操作するために使われます。使用頻度は高くないでしょうが。コマンド名と役割くらいは覚えておきましょう)。lpadmin
コマンドの例を示します:
$ sudo lpadmin -p ENVY-4510 -L "office" -v socket://192.168.150.25 -m everywhere
コマンドを分解して、それぞれのオプションを説明します。
-
システムにプリンタを追加するには管理者権限が必要なので、
lpadmin
コマンドの前にsudo
を付けます。 -
-p
オプションは印刷ジョブの宛先で、ユーザーに分かりやすい名前です。一般的には、プリンタ名を指定します。 -
-L
オプションでプリンタの位置を指定します。これはオプションですが、たくさんのプリンタが色々な場所にある場合に役立ちます。 -
-v
オプションには、プリンタデバイスのURIを指定します。CUPSは、レンダリングされたプリントジョブを、特定のプリンタに送信するためにデバイスURIを利用します。この例では、IPアドレスでネットワークでの送り先を指定しています。 -
最後のオプション
-m
には、“everywhere” を指定しています。このオプションにプリンタのモデルを指定することで、使用するPPDファイルが決定されます。現在のCUPSでは “everywhere” を指定して、CUPSにデバイスURI(前述の-v
オプション)からプリンタ用の適切なPPDファイルを自動的に決定させるのが最適です。今では、CUPSが後で述べるIPPを利用するからです。
CUPSにプリンタに最適なPPDファイルを自動的に決定させるのがベストです。とはいえ、レガシーの lpinfo
コマンドを使用してインストールされているPPDファイルを調べることもできます。--make-and-model
オプションにセットアップしたいプリンタのモデル名と -m
オプションを指定します:
$ lpinfo --make-and-model "HP Envy 4510" -m hplip:0/ppd/hplip/HP/hp-envy_4510_series-hpijs.ppd HP Envy 4510 Series hpijs, 3.17.10 hplip:1/ppd/hplip/HP/hp-envy_4510_series-hpijs.ppd HP Envy 4510 Series hpijs, 3.17.10 hplip:2/ppd/hplip/HP/hp-envy_4510_series-hpijs.ppd HP Envy 4510 Series hpijs, 3.17.10 drv:///hpcups.crv/hp-envy_4510_series.ppd HP Envy 4510 Series, hpcups 3.17.10 everywhere IPP Everywhere
ここでは、使用できるプリンタドライバを調べるために取り上げましたが、lpinfo
コマンドの利用は推奨されていません。
Warning
|
CUPSの将来のバージョンでは、プリンタドライバが廃止されて、代わりにIPP(Internet Printing Protocol)と、標準ファイルフォーマットに重点が置かれます。IPPは、プリントドライバと同じタスクを実現するもので、CUPSのWebインターフェースと同様に、TCPの631ポートを使用します。 |
印刷ジョブの大部分(またはすべて)を特定のプリンタに送る場合には、lpoptions
コマンドでデフォルトのプリンタを指定することができます。-d
オプションでデフォルトプリンタを指定します。
$ lpoptions -d ENVY-4510
プリンタの管理
プリンタをインストールすると、Webインターフェイスでプリンタのオプションを管理できますが、lpadmin
コマンドを直接使用することもできます。
例えば、プリンタをネットワーク上で共有しましょう。-p
オプションでプリンタを指定し、printer-is-shared
(プリンタを共有する)オプションを有効化します。
$ sudo lpadmin -p FRONT-DESK -o printer-is-shared=true
印刷キューを、特定のユーザーからの印刷ジョブのみを受け入れるように構成することもできます。次のように、各ユーザーをコンマで区切って指定します。
$ sudo lpadmin -p FRONT-DESK -u allow:carol,frank,grace
逆に、特定のユーザーの印刷キューへのアクセス禁止することもできます。
$ sudo lpadmin -p FRONT-DESK -u deny:dave
ユーザーグループでプリンタのキューへのアクセスを許可/禁止するには、グループ名の前に “アットマーク”(@
)を付けます。
$ sudo lpadmin -p FRONT-DESK -u deny:@sales,@marketing
ジョブの実行に問題が発生した場合の動作を、印刷キューのポリシーとして指定することができます。以下のポリシーを指定できます:
-
エラー時にジョブを中断する(
abort-job
) -
後でジョブの再実行を試みる(
retry-job
) -
エラー時にプリンタを停止する(
stop-printer
) -
直ちにジョブを再実行する(
retry-current-job
)
以下に、FRONT-DESK
プリンタでエラーが発生した場合に、印刷ジョブを中断するポリシーを指定する例を示します。
$ sudo lpadmin -p FRONT-DESK -o printer-error-policy=abort-job
このコマンドの詳細は、lpadmin(8)
のmanページを参照してください。
印刷ジョブの送信
多くのデスクトップアプリケーションでは、メニューやキーボードショートカット Ctrl+p で印刷ジョブを送信できます。デスクトップ環境を利用しないLinuxシステムでは、レガシーなLPD/LPRコマンドでファイルをプリンタに送信します。
印刷ジョブをプリンタのキューに送信するには、lpr
(“line printer remote”)コマンドを使用します。コマンドの最も基本的な使い方は、lpr
コマンドにファイル名を指定するだけです。
$ lpr report.txt
上のコマンドは、ファイル report.txt
を、システムのデフォルト印刷キュー(/etc/cups/printers.conf
ファイルで指定します)に送信します。
CUPSに複数のプリンタがインストールされている場合は、lpstat
コマンドに p
オプションを指定すれば、利用可能なプリンタのリストが表示され、d
オプションを指定すると、どのプリンタがデフォルトであるかが表示されます。
$ lpstat -p -d printer FRONT-DESK is idle. enabled since Mon 03 Aug 2020 10:33:07 AM EDT printer PostScript_oc0303387803 disabled since Sat 07 Mar 2020 08:33:11 PM EST - reason unknown printer ENVY-4510 is idle. enabled since Fri 31 Jul 2020 10:08:31 AM EDT system default destination: ENVY-4510
この例では、report.txt
ファイルは、デフォルトとして設定されている ENVY-4510
プリンタに送信されます。ファイルを別のプリンタで印刷する場合は、-P
オプションでプリンタを指定します。
$ lpr -P FRONT-DESK report.txt
印刷ジョブがCUPSに送信されると、デーモンはそのタスクを処理するのに最も適しているバックエンドを判断します。CUPSは、さまざまなプリンタドライバ、フィルタ、ハードウェアポートモニタ、別のソフトウェアなどを使用して、文書を適切に印刷します。文書を どのように 印刷するかを調整したいことがあります。多くのグラフィックアプリケーションでは簡単なことですが、コマンドラインではオプションを指定します。lpr
コマンドで印刷ジョブを送信する時に、-o
オプションに所定の単語を指定して、文書のレイアウトを調整します。使用する単語を以下に示します:
landscape
-
用紙を横置き(横長)で印刷します。
orientation-requested=4
でも同じ結果が得られます。 two-sided-long-edge
-
縦置き(縦長)用紙に両面印刷します。(プリンタがこの機能をサポートしている場合)
two-sided-short-edge
-
横置き(横長)用紙に両面印刷します。(プリンタがこの機能をサポートしている場合)
media
-
用紙サイズを指定します。使用できる用紙サイズはプリンタによって異なりますが、一般的なサイズは次の通りです:
単語 用紙 A4
ISO A4
Letter
USレター
Legal
USリーガル
DL
ISO DL封筒
COM10
US #10封筒
collate
-
文書を複数部数印刷する場合に、部単位の印刷を指定します。
true
を指定すると部単位、false
を指定するとページ単位になります。 page-ranges
-
印刷するページ範囲を指定します。1ページのみや、指定のページのみが印刷されます。例えば
-o page-ranges=5-7,9,15
と指定すると、5、6、7ページが印刷され、続いて9ページと15ページが印刷されます。 fit-to-page
-
用紙サイズに合わせて文書を拡大/縮小して印刷します。文書ファイルにページサイズに関する情報が含まれていない場合は正しく拡大/縮小されずに、文書の一部が欠けたり、小さすぎることがあります。
outputorder
-
文書の印刷順序を
-o outputorder=normal
ないし-o outputorder=reverse
で指定します。ページを下向きに排出するプリンタではnormal
が、ページを上向きに排出するプリンタではreverse
がデフォルトです。
オプションの指定例を以下に示します:
$ lpr -P ACCOUNTING-LASERJET -o landscape -o media=A4 -o two-sided-short-edge finance-report.pdf
印刷部数を指定するには、#オプションを指定します。-#N
と言う形式で、N
には部数を置きます。デフォルトのプリンタで7部を印刷する例を示します。
$ lpr -#7 -o collate=true status-report.pdf
lpr
コマンドとは別に、 lp
コマンドも使用できます。(訳注: lpr
はBSD由来の、lp
は System V由来のコマンドです)。lpr
コマンドオプションの多くを lp
コマンドでも使用できますが、いくつかの違いがあります。lp(1)
のmanページを参照してください。以下に、-d
オプションで宛先プリンタを指定し、lp
コマンドで先の lpr
コマンドと同様の出力を得る例を示します。
$ lp -d ACCOUNTING-LASERJET -n 7 -o collate=true status-report.pdf
印刷ジョブの管理
前述しましたが、印刷キューにジョブを送信すると、CUPSがジョブIDを表示します。lpq
コマンドで、自分が送信した印刷ジョブを表示できます。-a
オプションを指定すると、CUPSが管理しているすべてのプリンタのキューが表示されます。
$ lpq -a Rank Owner Job File(s) Total Size 1st carol 20 finance-report.pdf 5072 bytes
前に紹介した lpstat
コマンドにも、プリンタキューを表示するオプションがあります。-o
オプションですべての印刷キューを表示しますが、印刷キューの名前を指定することもできます。
$ lpstat -o ACCOUNTING-LASERJET-4 carol 19456 Wed 05 Aug 2020 04:29:44 PM EDT
ジョブが送信されたキューの名前の末尾にジョブIDの数値が付加され、ジョブを送信したユーザー名、ファイルのサイズ、送信時刻が続きます。
プリンタで印刷ジョブが停止した場合、あるいは、印刷ジョブをキャンセルしたい場合は、lpq
コマンドで調べたジョブIDを指定して、lprm
コマンドを使用します。
$ lprm 20
印刷キュー内のすべてのジョブをキャンセルするには、lprm
に -
(ハイフン) のみを指定します。
$ lprm -
cancel
コマンドを使えば、現在の印刷ジョブをキャンセルできます。
$ cancel
キャンセルするジョブを指定したいときは、プリンタ名を前に付けたジョブID(訳注: lpstat
の出力形式)を指定します。
$ cancel ACCOUNTING-LASERJET-20
印刷ジョブを、ある印刷キューから別の印刷キューに移動することもできます。プリンタが応答しなくなったり、印刷する文書に別のプリンタの機能が必要な場合などに役立ちます。この処理には、プリンタ管理の特権が必要であることに注意してください。前の例と同じ方法で印刷ジョブを指定して、FRONT-DESK
プリンタのキューに移動する例を示します。
$ sudo lpmove ACCOUNTING-LASERJET-20 FRONT-DESK
プリンタの削除
プリンタを削除する前に、CUPSサービスが管理しているすべてのプリンタをリストアップすると便利です。lpstat
コマンドを使います。
$ lpstat -v device for FRONT-DESK: socket://192.168.150.24 device for ENVY-4510: socket://192.168.150.25 device for PostScript_oc0303387803: ///dev/null
-v
オプションを指定すると、プリンタだけではなく、接続されている位置(と方法)も表示されます。まず、ユーザーがプリンタに新しいジョブを送信することを禁止して、プリンタが新しいジョブを受け入れない理由が提示されるようにすると良いでしょう。次の方法で行います:
$ sudo cupsreject -r "Printer to be removed" FRONT-DESK
このタスクにはプリンタ管理の特権が必要ですから、sudo
を使用します。
プリンタを削除するには、lpadmin
コマンドに -x
オプションを指定します。
$ sudo lpadmin -x FRONT-DESK
演習
-
office-mgr
という名前のワークステーションに新しいプリンタをインストールしました。このワークステーションのデフォルトとして、そのプリンタを設定するコマンドはどうなりますか? -
ワークステーションで使用できるプリンタを表示するコマンドはどうなりますか?
-
office-mgr
という名前のプリンタのキューにある、IDが15の印刷ジョブを削除するcancel
コマンドはどうなりますか? -
FRONT-DESK
プリンタにキューに送ったIDが2の印刷ジョブは、印刷を完了するには用紙が足りないことに気付きました。このジョブを、ACCOUNTING-LASERJET
プリンタの印刷キューに移動するコマンドはどうなりますか?
発展演習
実際のプリンタをインストールせずに、CUPSプリンタ管理の実習を行います。Debian系のディストリビューションでは printer-driver-cups-pdf
パッケージを、Red Hat系のディストリビューションでは cups-pdf
パッケージをインストールします(訳注: いずれもいわゆる PDFプリンタ を提供するパッケージです)。また、cups-client
パッケージをインストールして、System Vスタイルの印刷コマンドを使用します。
-
CUPSデーモンが実行されていること、PDFプリンタが有効で、デフォルトに設定されていることを確認します。
-
/etc/services
ファイルを印刷して、ホームディレクトリのPDF
という名前のディレクトリにPDFを置くコマンドを実行します。 -
プリンタを無効化するコマンドを実行します。次いで、すべてのステータス情報を表示するコマンドを実行して、PDFプリンタが無効になっていることを確認します。
-
今度は、
/etc/fstab
ファイルをPDFプリンタに印刷します。何が起こりますか? -
印刷ジョブをキャンセルしてから、PDFプリンタを削除します。
まとめ
CUPSデーモンは、ローカルおよびリモートのプリンタに印刷するために広く使用されているプラットフォームです。従来のLPDプロトコルに取って代わったものですが、ツールには互換性があります。
このレッスンで説明したファイルとコマンドは次のとおりです:
/etc/cups/cupsd.conf
-
CUPSサービス本体の設定ファイル。CUPSのWebインターフェイスへのアクセスも制御します。
/etc/printcap
-
LPDによって使用されていたレガシーファイルで、システムに接続されているプリンタの情報を行ごとに保持しています。
/etc/cups/printers.conf
-
プリンタ情報を保持するCUPSの設定ファイル。
CUPSのWebインターフェースは、デフォルトで http://localhost:631
にあります。ポート番号が631/TCPであることに注意してください。
以下に示す、レガシーなLPD/LPRコマンドについても説明しました。
lpadmin
-
プリンタとプリンタクラスのインストールと削除を行う。
lpoptions
-
プリンタオプションを表示、および設定する。
lpstat
-
接続されているプリンタのステータス情報を表示する。
lpr
-
印刷ジョブをプリンタのキューに送信する。
lp
-
印刷ジョブをプリンタのキューに送信する。
lpq
-
印刷キューにある印刷ジョブを一覧表示します。
lprm
-
ジョブIDを指定して印刷ジョブをキャンセルする。ジョブIDは、
lpq
コマンドで取得できる。 cancel
-
ジョブIDを指定して印刷ジョブをキャンセルする。
lprm
コマンドと同様。
CUPSのさまざまなツールとユーティリティについては、次のマニュアルページを確認してください: lpadmin(8)
、lpoptions(1)
、lpr(1)
、lpq(1)
、lprm(1)
、cancel(1)
、lpstat(1)
、cupsenable(8)
、cupsaccept(8)
。http://localhost:631/help
にあるオンラインヘルプのドキュメントも有用です。
演習の解答
-
office-mgr
という名前のワークステーションに新しいプリンタをインストールしました。このワークステーションのデフォルトとして、そのプリンタを設定するコマンドはどうなりますか?$ lpoptions -d office-mgr
-
ワークステーションで使用できるプリンタを表示するコマンドはどうなりますか?
$ lpstat -p
-p
オプションは、使用可能なすべてのプリンタと、それらが印刷可能かどうかを一覧表示します。 -
office-mgr
という名前のプリンタのキューにある、IDが15の印刷ジョブを削除するcancel
コマンドはどうなりますか?$ cancel office-mgr-15
-
FRONT-DESK
プリンタにキューに送ったIDが2の印刷ジョブは、印刷を完了するには用紙が足りないことに気付きました。このジョブを、ACCOUNTING-LASERJET
プリンタの印刷キューに移動するコマンドはどうなりますか?$ sudo lpmove FRONT-DESK-2 ACCOUNTING-LASERJET
発展演習の解答
実際のプリンタをインストールせずに、CUPSプリンタ管理の実習を行います。Debian系のディストリビューションでは printer-driver-cups-pdf
パッケージを、Red Hat系のディストリビューションでは cups-pdf
パッケージをインストールします(訳注: いずれもいわゆる PDFプリンタ を提供するパッケージです)。また、cups-client
パッケージをインストールして、System Vスタイルの印刷コマンドを使用します。
-
CUPSデーモンが実行されていること、PDFプリンタが有効で、デフォルトに設定されていることを確認します。
PDFプリンタのステータスを確認する方法の1つに、次のコマンドがあります。
$ lpstat -p -d printer PDF is idle. enabled since Thu 25 Jun 2020 02:36:07 PM EDTi system default destination: PDF
-
/etc/services
ファイルを印刷して、ホームディレクトリのPDF
というディレクトリにPDFを置くコマンドを実行します。$ lp -d PDF /etc/services
これによって、PDFディレクトリ内にPDFファイルが作成されます。
-
プリンタを無効化するコマンドを実行します。次いで、すべてのステータス情報を表示するコマンドを実行して、PDFプリンタが無効になっていることを確認します。
$ sudo cupsdisable PDF
PDFプリンタが無効になりました。
プリンタのステータスをすべて表示する
lpstat -t
コマンドを実行します。次のようになります。$ lpstat -t scheduler is running system default destination: PDF device for PDF: cups-pdf:/ PDF accepting requests since Wed 05 Aug 2020 04:19:15 PM EDT printer PDF disabled since Wed 05 Aug 2020 04:19:15 PM EDT - Paused
-
今度は
/etc/fstab
ファイルをPDFプリンタに印刷します。何が起こりますか?コマンド
lp -d PDF /etc/fstab
を実行すると、ジョブIDが表示されます。しかし、ホームディレクトリのPDFフォルダを確認しても、新しいファイルはありません。lpstat -o
コマンドで印刷キューを確認すると、ジョブが一覧表示されます。 -
印刷ジョブをキャンセルしてから、PDFプリンタを削除します。`
lp
コマンドが出力したIDを使用して、cancel
コマンドでジョブを削除します。例を示します。$ cancel PDF-4
再度
lpstat -o
コマンドを実行して、ジョブが削除されたことを確認します。sudo lpadmin -x PDF
コマンドでPDFプリンタを削除します。lpstat -a
で、プリンタが削除されたことを確認します。