LPIC-1 - 102試験 - 108:重要なシステムサービス - 108.4 プリンターと印刷を管理する

Last Update : September 18 2014 21:34:20

     

a. Linuxでの印刷の仕組み

1. LPR/LPD の定義

LPR/LPD はプラットフォームに依存しない印刷プロトコルであり、TCP/IP 上で動作します。もともとは BSD unix にインプリメントされていたものですが、デスクトップ機で広く利用されるようになり、デファクトスタンダードとなっています。LPR の仕様は Request for Comment (RFC) 1179 に定義されています。


2. LPR

"Line Printer Remote" の略号で、プリンタやプリントキューにジョブを送る処理をいいます。プリンタのクライアントソフトウェアが行うのと同様のものであることから、「LPR クライアント」とも呼ばれています。


3. LPD

"Line Printer Deamon" の略号で、クライアント(LPR クライアント)からプリントジョブを受け取る処理をいいます。プリンタやプリンタサーバが行うのと同様のものであることから、「LPD サーバ」とも呼ばれています。 プリントサーバは、クライアントからジョブが送られてくるのを待ち受けます。複数台のプリンタまたは複数のプリントキューを、一つのプリンタサーバで処理することが可能です。プリンタサーバは(通常は)IP アドレスを一つしか持たないため、ジョブを渡す時にはキューの名前を使ってプリントキューを指定する必要があります。

LPR と LPD は、LPR/LPD 仕様(RFC 1179)で定義されているプロトコルを指す場合もあります。


4. LPRの動き

LPR はファイルの送信と似ています。ファイルの代わりにプリントジョブを送信しているだけの違いです。ただし、プリントジョブは 2 つのファイルを合わせたものです。データファイル(印刷されるデータ)と制御ファイル(データファイルの記述方法やデータファイルをどうするかの指示)です。

印刷ダイアログで「印刷」をクリックすると、コンピュータはプリントジョブをディスクににスプールして PostScript データ(データファイル)を作ります。それからデータファイルと制御ファイルを、LPR デスクトッププリンタで定義されている IP アドレスに送信します。相手先となる IP アドレスには 1 つ以上のキューがある事も多いので、キューを指定するために、一番初めにキュー名が送られます。

相手先がプリンタであれば、プリンタはジョブを印刷します。相手先がプリンタサーバであれば、追加の処理(たとえばセキュリティチェックなど)が発生することもあります。それから、次の送り先(通常はプリンタ)にジョブが送られます。


5. LPR を利用した場合の優位点

単一プロトコル環境への移行 クロスプラットフォーム対応、プラットフォームに依存しない インターネット経由でアクセス可能



b. CUPS (Common Unix Printing System)
1.CUPSの概要

CUPSは、Mac OSやLinuxを含むUNIX系OSの印刷システムで中核を成すサービスです。印刷データを管理します。
Linuxの一般的な印刷システムです。CUPSは、アプリケーションから受け取った印刷データをいったん保存し、スケジューリングを行います。そして、受け取った印刷データをGhostscript(ゴーストスクリプト)と呼ばれるソフトウエアに、プリンタの機種依存情報や設定情報と一緒に渡します。Ghostscriptは、印刷データと設定情報に基づいて、プリンタの描画命令に変換して、ドライバにデータを渡します。
CUPSが参照する機種依存情報は、通常PPDと呼ばれるファイルに記述されます。また、CUPS側の設定情報は、ドライバの持つフロントエンド・ツールか、CUPSが持つ設定用のWebページで指定します。
CUPSは、通常デーモンとして稼働されます。ラン・レベルごとに自動起動されるか否かは、次のコマンドで確認できます。

CUPSを運用しているコンピュータは、クライアントのコンピュータから印刷ジョブを受け取るサーバとなり、それらのジョブを処理して適切なプリンタへと送ります。また、その際には HTTPのBasic認証およびDigest認証、ローカル認証、128ビットTLS/SSL暗号化などを用いることもできます。
CUPSはUnixの印刷スプーラとスケジューラ、フィルタ・システム、およびバックエンド・システムからなります。 このうち、フィルタ・システムは印刷データをプリンタが理解可能な形式へ変換することを受け持ち、バックエンド・システムはそのデータをプリンタへと送ることを受け持ちます。CUPSは印刷ジョブとキューを取り扱う基盤としてIPP (Internet Printing Protocol)を用いています。またCUPSはUnixで伝統的なSystem V形式と BSD (バークレー) 形式のコマンド・ラインのインターフェースもサポートしており、さらに SMB プロトコルも部分的にサポートしています。

  • 既存のBerkeley lpr(LPD)やSystemV lp等のラインプリンター系印刷システムと互換性を持ちながら、高機能プリントシステムを実現
  • 印刷プロトコルとしてIPPを使用
  • PPD(PostScript Printer Description)ファイルのサポート
  • プリンタードライバー・プリンターフィルターのモジュール化
  • 複数のプリンターによるプリンタークラスの定義
  • Webベースの設定ツール

など、先進的な機能が含まれています。

CUPSの特徴の一つはフィルターにあります。
CUPSは、フィルターと呼ばれるデータを変換するプログラムを組み合わせ、CUPSサーバーに送られてきたデータを印刷可能な状態へと変換します。 これらフィルターが提供する機能はデータ形式の変換やプリンター言語への変換、また用紙の印刷順序の入れ替えなどです。 こうした幾つかのフィルターで構成されるまとまりをプリンタードライバーといい、特にプリンターで印刷できるデータ形式に変換するフィルター群のことを指します。

  1. 印刷データを受け取る(設定ファイルはPPD形式)
  2. スプーラが印刷データを受け取り、スケジュールする
  3. プリンタが直接受け取れないデータをPDF or PostScriptに変換する
  4. PPDに定義されているフィルタにより最終の印刷データに変更する
  5. 処理した印刷データをCUPSのバックエンドに送る
  6. バックエンドは印刷データをプリンタに渡す


2.CUPSの設定

CUPSデーモンの起動方法は

# /etc/init.d/cupsd start

CUPSが起動するとippサービスのtcpポート631が開いて待ち受けします。

CUPSの設定ファイルは、/etc/cups/cupsd.confです。印刷要求をネットワーク経由で受け付けるポート番号や接続するクライアントのアクセス許可を設定します。
プリンタに関する情報などは、/etc/cups/printers.confに設定します。
これらの設定ファイルは、cupsの動いているサーバーの631番ポートにwebブラウザでアクセスすることで、webインターフェースで設定することができます。
プリンタの状態や設定したりもできます。


c. 印刷コマンド

1.プリンタで印刷する[ lpr ]

プリンタで印刷する。出力はプリンタの管理キューに送られ印刷を待ち、ジョブの順番ごとに、印刷を実行する。

● lpr コマンド構文
  lpr [オプション] [ファイル名]

● lpr コマンドオプション
 -r 印刷終了後ファイルを削除する
 -s スプーリングを行わない
 -P プリンタ名 プリンタを指定する
 -#部数 指定した部数だけ印刷する


2.印刷ジョブを確認する[ lpq ]

指定したプリンタの印刷ジョブの情報を表示する。

● lpq コマンド構文
  lpq [オプション] [ユーザー名] [ジョブ番号]

● lpq コマンドオプション
 -l 詳細情報を表示する
 -a すべてのプリンタを対象にする
 -P プリンタ名 確認するプリンタを指定する


3.印刷キュー内の印刷ジョブを取り消す[ lprm ]

キューにある印刷待ちしている印刷ジョブを削除する。

● lprm コマンド構文
  lprm [オプション] [ユーザー名] [ジョブ番号]

● lprm コマンドオプション
 - 自分のすべての印刷ジョブを削除する。スーパーユーザーの場合は印刷キューを完全に空にする
 -P プリンタ名 削除対象となるプリンタを指定する


z. 出題範囲概要

●主要な知識範囲
基本的なCUPSの設定(ローカルプリンターおよびリモートプリンターに対して)
ユーザの印刷キューを管理する
一般的な印刷に関する問題を解決する
設定済みの印刷キューに対して、ジョブを追加および削除する
●重要なファイル、用語、ユーティリティ
CUPSの設定ファイル、ツール、ユーティリティ /etc/cups lpdのレガシーインターフェイス(lpr、lprm、lpq)


  [ 例題 ] 
  1. 102:108.4 問01  CUPS
  2. 102:108.4 問02  プリンタキューlpの状態
  3. 102:108.4 問03  プリンタの登録
  4. 102:108.4 問04  印刷するためのコマンド
  5. 102:108.4 問05  LPDデーモン


     

www.it-shikaku.jp