![]() |
|
Linux - Wegweiser für NetzwerkerOnline-VersionCopyright © 2001
by O'Reilly Verlag GmbH & Co.KG Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser für Netzwerker oder wollen Sie es bestellen, dann klicken Sie bitte hier. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Das ncpfs-Paket enthält ein kleines Hilfsprogramm namens nprint, mit dem man Druckaufträge über eine NCP-Verbindung an eine NetWare-Druckerwarteschlange senden kann. Dieser Befehl erzeugt automatisch eine Verbindung, sofern sie gerade nicht besteht, und benutzt die Datei ~/.nwclient, die wir bereits beschrieben haben, um den Benutzernamen und das Paßwort vor neugierigen Blicken zu verbergen. Die Befehlszeilenargumente, die für den Login-Prozeß verwendet werden, sind dieselben wie bei ncpmount, so daß wir hier nicht näher auf sie eingehen. In unseren Beispielen betrachten wir nur die wichtigsten Kommandozeilenargumente. Details können Sie der Manpage nprint(1) entnehmen.
Das einzige für nprint erforderliche Argument ist der Name der Datei, die gedruckt werden soll. Ist als Dateiname – oder überhaupt kein Dateiname angegeben, erwartet nprint den Druckauftrag von der Standardeingabe stdin
. Die wichtigsten Optionen von nprint geben den Dateiserver und die Druckerwarteschlange an, an die Sie den Druckauftrag senden wollen. Siehe dazu Tabelle 15.4.
Tabelle 15.4: Kommandozeilenoptionen von nprint
Option | Beschreibung |
---|---|
-S server_name
|
Der Name des NetWare-Dateiservers, der für die Druckerwarteschlange zuständig ist, an die Sie Druckaufträge schicken wollen. Für gewöhnlich ist es bequem, für den Server einen Eintrag in ~/.nwclient vorzusehen. Diese Option ist obligatorisch. |
-q queue_name
|
Die Druckerwarteschlange, an die Sie den Druckauftrag schicken wollen. Diese Option ist obligatorisch. |
-d job_description
|
Text, der im Druckerkonsolen-Utility erscheint, wenn die Liste der Druckaufträge in der Warteschlange angezeigt wird. |
-l lines
|
Die Anzahl der Zeilen pro gedruckter Seite. Vorgabewert ist 66. |
-r columns
|
Die Anzahl der Spalten pro gedruckter Seite. Vorgabewert ist 80. |
-c copies
|
Die Anzahl der Kopien des Druckauftrags. Vorgabewert ist 1. |
Ein einfaches Anwendungsbeispiel von nprint sieht wie folgt aus:
$ nprint -S REDS01 -q PSLASER -c 2 /home/matt/ethylene.ps
Diese Anweisung druckt zwei Kopien der Datei /home/matt/ethylene.ps auf dem Drucker PSLASER
auf dem Dateiserver REDS01
und benutzt dabei einen Benutzernamen und ein Paßwort aus der Datei ~/.nwclient.
Sie erinnern sich bestimmt daran, daß wir bereits erwähnten, daß die Option –c für den Befehl ncpmount nützlich zum Drucken ist. Wir erläutern nun abschließend, warum das so ist und wie es funktioniert.
Linux nutzt normalerweise eine BSD-artige Druckersoftware. Der Line Printer Daemon (lpd) ist ein Dämon, der ein lokales Spool-Verzeichnis nach dort abgelegten Druckjobs durchsucht. lpd liest den Druckernamen und einige andere Parameter aus einer speziell formatierten Spool-Datei und schickt die Daten an den Drucker. Optional werden die Daten durch einen Filter geschickt, um sie auf irgendeine Weise zu transfomieren oder zu manipulieren.
Der lpd-Dämon benutzt eine einfache Datei namens /etc/printcap, in der die Drucker-Konfigurationsdaten abgespeichert werden (welche Filter benutzt werden sollen etc.). lpd läuft normalerweise mit den Zugriffsrechten eines speziellen Systembenutzers namens lp.
Sie könnten nprint als Filter für lpd konfigurieren, wodurch Benutzer Ihrer Linux-Maschine ihre Druckjobs direkt auf Remote-Drucker senden könnten, die von einem NetWare-Dateiserver gehostet werden. Dazu muß der Benutzer lp in die Lage versetzt werden, NCP-Anfragen an die NCP-Verbindung zum Server zu schreiben.
Wenn Sie dasselbe erreichen wollen, ohne den Systembenutzer lp zum Aufbau einer eigenen Verbindung und zum Einloggen zu verpflichten, sollten Sie lp als Eigentümer einer Verbindung angeben, die von einem anderen Benutzer aufgebaut wurde. Das folgende Beispiel zeigt in drei Schritten, wie Sie das Drucksystem in Linux so einrichten, daß es Druckjobs von Clients über NetWare verarbeiten kann:
Schreiben Sie ein Wrapper-Skript.
Die Datei /etc/printcap läßt keine Optionen zu, die an die Druckfilter weitergereicht werden könnten. Dafür müssen Sie erst ein kleines Skript schreiben, das den Befehl mit den gewünschten Optionen ausführt. Wie einfach so ein Wrapper-Skript sein kann, zeigt:
#!/bin/sh # p2pslaser - einfaches Skript für die Ausgabeumleitung zur # Druckerwarteschlange PSLASER auf dem Server REDS01 # /usr/bin/nprint -S REDS01 -U stuart -q PSLASER #
Speichern Sie das Skript in der Datei /usr/local/bin/p2pslaser ab.
Schreiben Sie den /etc/printcap-Eintrag.
Wir müssen das soeben erzeugte Skript p2pslaser als Ausgabefilter in /etc/printcap eintragen, etwa so:
pslaser|Postscript Laser Printer hosted by NetWare server:\ :lp=/dev/null:\ :sd=/var/spool/lpd/pslaser:\ :if=/usr/local/bin/p2pslaser:\ :af=/var/log/lp-acct:\ :lf=/var/log/lp-errs:\ :pl#66:\ :pw#80:\ :pc#150:\ :mx#0:\ :sh:
Fügen Sie dem Befehl ncpmount die Option –c hinzu.
ncpmount -S REDS01 .... -c lp ....
Unser lokaler Benutzer stuart muß dann lp als Eigentümer der Verbindung angeben, wenn er den Remote-NetWare-Server mountet.
Nun kann jeder Linux-Anwender pslaser
als Druckernamen angeben, wenn er den Befehl lp ausführt. Der Druckjob wird dann zum angegebenen NetWare-Server geschickt und in dessen Druckerwarteschlange eingetragen.
Der Befehl pqlist listet alle Druckerwarteschlangen auf, die auf dem angegebenen Server verfügbar sind. Wenn Sie in der Befehlszeile keinen Dateiserver mit der Option -S oder auch keinen Benutzernamen und kein Paßwort angeben, werden dafür die Vorgabewerte aus Ihrer ~/.nwclient-Datei genommen:
# pqlist -S vbrew_f1 -U guest -n
Server: ALES_F1 Print queue name Queue ID ------------------------------------------------------------ TEST AA02009E Q2 EF0200D9 NPI223761_P1 DA03007C Q1 F1060004 I-DATA 0D0A003B NPI223761_P3 D80A0031
Unser Beispiel zeigt eine Liste von Druckerwarteschlangen, die dem Benutzer guest
auf dem Dateiserver ALES_F1
zur Verfügung stehen.1
Um die Druckjobs in einer Warteschlange anzeigen zu lassen, benutzen Sie den Befehl pqstat. Er erwartet den Namen der Warteschlange als Argument und listet alle Jobs darin auf. Optional können Sie auch die Anzahl der auszugebenden Aufträge angeben. Das folgende Ausgabebeispiel wurde in der Zeilenlänge etwas gekürzt, damit es auf diese Buchseite paßt:
$ pqstat -S ALES_F1 NPI223761_P1 Server: ALES_F1 Queue: NPI223761_P1 Queue ID: 6A0E000C Seq Name Description Status Form Job ID ------------------------------------------------------------------------ 1 TOTRAN LyX document - proposal.lyx Active 0 02660001
Wir sehen hier nur einen Druckjob in der Warteschlange, dessen Eigentümer TOTRAN
ist. Die anderen Optionen enthalten eine Beschreibung des Jobs, seines Zustands sowie die Job-ID.
Der Befehl pqrm dient zum Entfernen von Druckaufträgen aus einer Warteschlange. Um den eben angezeigten Druckjob zu löschen, geben wir folgendes ein:
$ pqrm -S ALES_F1 NPI223761_P1 02660001
Der Befehl ist einfach, aber umständlich zu bedienen, wenn man es eilig hat. Es lohnt sich vielleicht, dafür ein kleines Skript zu schreiben.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Weitere Informationen zum Linux - Wegweiser für Netzwerker
Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center
© 2001, O'Reilly Verlag