108.4 Lektion 1
Zertifikat: |
LPIC-1 |
---|---|
Version: |
5.0 |
Thema: |
108 Grundlegende Systemdienste |
Lernziel: |
108.4 Drucker und Druckvorgänge verwalten |
Lektion: |
1 von 1 |
Einführung
Prognosen über eine “papierlose Gesellschaft”, die mit zunehmender Verbreitung von Computern möglich wird, haben sich bis heute als falsch erwiesen. Viele Unternehmen sind nach wie vor auf gedruckte Informationen angewiesen. Umso wichtiger ist es für Computerbenutzer zu wissen, wie man von einem System aus druckt — und der Administrator muss sicherstellen, dass die Rechner mit den Druckern zusammenarbeiten.
Unter Linux und vielen anderen Betriebssystemen sorgt der Software-Stack Common Unix Printing System (CUPS) für das Drucken und die Druckerverwaltung eines Computers. Hier eine vereinfachte Darstellung, wie eine Datei in Linux mit CUPS gedruckt wird:
-
Ein Benutzer schickt eine Datei zum Druck.
-
Der CUPS-Daemon
cupsd
empfängt den Druckauftrag und vergibt eine Auftragsnummer sowie Informationen darüber, in welcher Druckwarteschlange der Auftrag steht, sowie den Namen des zu druckenden Dokuments. -
CUPS nutzt installierte Filter, um die Datei so zu formatierten, dass der Drucker sie nutzen kann.
-
CUPS sendet die neu formatierte Datei zur Ausgabe an den Drucker.
Wir werden uns diese Schritte im Detail ansehen — ebenso wie Installation und Verwaltung eines Druckers unter Linux.
Der Dienst CUPS
Bei den meisten Linux-Desktop-Installationen sind die CUPS-Pakete bereits installiert, auf minimalen Linux-Installationen möglicherweise aber nicht. Die Basisinstallation von CUPS sieht auf einem Debian-System wie folgt aus:
$ sudo apt install cups
Auf Fedora-Systemen ist der Installationsprozess genauso einfach. Auf Fedora und anderen Red Hat-basierten Distributionen müssen Sie den CUPS-Dienst nach der Installation manuell starten:
$ sudo dnf install cups ... $ sudo systemctl start cups.service
Nach Abschluss der Installation prüfen Sie mit dem Befehl systemctl
, ob der CUPS-Dienst läuft:
$ 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://
Wie viele andere Linux-Daemons stützt sich CUPS für seine Operationen auf eine Reihe von Konfigurationsdateien. Im Folgenden beschreiben wir die für den Systemadministrator wichtigsten Dateien:
/etc/cups/cupsd.conf
-
Die Datei enthält die Konfigurationseinstellungen für den CUPS-Dienst selbst. Wenn Sie mit der Konfigurationsdatei des Apache-Webservers vertraut sind, wird Ihnen die CUPS-Konfiguration bekannt vorkommen, da sie eine sehr ähnliche Syntax hat. Die Vorgaben in
cupsd.conf
steuern unter anderem den Zugriff auf die verschiedenen Druckwarteschlangen des Systems, ob die CUPS-Webschnittstelle aktiviert ist oder nicht, sowie den Grad des Loggings, den der Daemon nutzt. /etc/printcap
-
Die alte, vom Line Printer Daemon (LPD) vor der Einführung von CUPS verwendete Konfigurationsdatei. CUPS legt diese aus Gründen der Abwärtskompatibilität immer noch an, oft als symbolischen Link zu
/run/cups/printcap
. Jede Zeile in dieser Datei enthält einen Drucker, auf den das System Zugriff hat. /etc/cups/printers.conf
-
Diese Datei enthält alle Drucker, die für die Verwendung durch CUPS konfiguriert sind. Jeder Drucker und die zugehörige Druckerwarteschlange in dieser Datei ist in einer
<Printer></Printer>
-Sektion genannt. Dies Datei enthält die einzelnen Druckerlisten, die in/etc/printcap
zu finden sind.WarningNehmen Sie keine Änderungen an der Datei
/etc/cups/printers.conf
auf der Kommandozeile vor, während der CUPS-Dienst läuft. /etc/cups/ppd/
-
Hierbei handelt es sich nicht um eine Konfigurationsdatei, sondern um ein Verzeichnis, das die jeweilige PostScript Printer Description (PPD) für die Drucker enthält. Die Betriebsfunktionen jedes Druckers werden in einer PPD-Datei (mit der Endung
.ppd
) gespeichert. Dabei handelt es sich um reine Textdateien in einem definierten Format.
Der CUPS-Dienst nutzt auch das Logging in ähnlicher Weise wie der Apache 2-Dienst. Die Logs landen in /var/log/cups/
und enthalten ein access_log
, page_log
und ein error_log
. Das access_log
protokolliert den Zugriff auf die CUPS-Weboberfläche sowie die dort durchgeführten Aktionen, wie zum Beispiel die Druckerverwaltung. Das page_log
protokolliert die Druckaufträge, die an die von der CUPS-Installation verwalteten Druckwarteschlangen gesendet wurden. Das error_log
enthält Meldungen über fehlgeschlagene Druckaufträge und andere von der Webschnittstelle aufgezeichnete Fehler.
Sehen wir uns nun die Werkzeuge und Dienstprogramme zur Verwaltung des CUPS-Dienstes näher an.
Die Webschnittstelle
Wie bereits erwähnt, bestimmt die Konfigurationsdatei /etc/cups/cupsd.conf
, ob die Webschnittstelle für das CUPS-System aktiviert ist. Die Konfigurationsoption sieht wie folgt aus:
# Web interface setting... WebInterface Yes
Ist die Webschnittstelle aktiviert, können Sie CUPS über einen Browser unter der Standard-URL http://localhost:631
verwalten. Per Default darf ein normaler Benutzer Drucker und Druckwarteschlangen anzeigen, aber jede Konfigurationsänderung erfordert einen Benutzer mit Root-Zugang, der sich beim Webdienst authentifiziert. Der Konfigurationsabschnitt in der Datei /etc/cups/cupsd.conf
zur Einschränkung des Zugriffs auf die Verwaltungsfunktionen sieht wie folgt aus:
# 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>
Hier eine Aufschlüsselung dieser Optionen:
AuthType Default
-
Verwendet eine einfache Authentifizierungsaufforderung, wenn eine Aktion Root-Zugriff erfordert.
Require user @SYSTEM
-
Zeigt an, dass ein Benutzer mit administrativen Rechten für die Operation benötigt wird. Sie können dies in
@<groupname>
ändern, so dass Mitglieder von<groupname>
den CUPS-Dienst verwalten dürfen. Stattdessen können Sie auch einzelne Benutzer über eine Liste wieRequire user carol, tim
setzen. Order deny,allow
-
Funktioniert ähnlich wie die Apache-2-Konfigurationsoption, bei der die Aktion standardmäßig deaktiviert ist, wenn ein Benutzer (oder ein Mitglied einer Gruppe) nicht authentifiziert ist.
Die Webschnittstelle für CUPS deaktivieren Sie, indem Sie den CUPS-Dienst zunächst stoppen, die Option WebInterface
von Yes
auf No
setzen und den CUPS-Dienst dann neu starten.
Die CUPS-Weboberfläche ist wie eine einfache Website mit folgenden Registerkarten für verschiedene Bereiche des CUPS-Systems aufgebaut:
- Home
-
Auf der Startseite ist die aktuell installierte Version von CUPS genannt. Außerdem wird CUPS in verschiedene Abschnitte unterteilt, z.B:
- CUPS for Users
-
Beschreibung von CUPS, Befehlszeilenoptionen für die Arbeit mit Druckern und Druckwarteschlangen sowie einen Link zum CUPS-Benutzerforum.
- CUPS for Administrators
-
Links zur Installation und Verwaltung von Druckern sowie Links zu Informationen über die Arbeit mit Druckern in einem Netzwerk.
- CUPS for Developers
-
Links zur Entwicklung von CUPS selbst sowie zur Erstellung von PPD-Dateien für Drucker.
- Administration
-
Die Verwaltungsseite ist ebenfalls in Abschnitte unterteilt:
- Printers
-
Neue Druckerim System hinzufügen, mit dem System verbundene Drucker finden und bereits installierte Drucker verwalten.
- Classes
-
Klassen sind ein Mechanismus, mit dem Sie Drucker zu Gruppen mit bestimmten Richtlinien hinzufügen. Eine Klasse kann zum Beispiel eine Gruppe von Druckern umfassen, die zu einem bestimmten Stockwerk eines Gebäudes gehören und an denen nur Benutzer einer bestimmten Abteilung drucken dürfen. Eine andere Klasse kann Beschränkungen für die Anzahl der Seiten enthalten, die ein Benutzer drucken darf. Klassen werden bei einer CUPS-Installation nicht standardmäßig erstellt, sondern müssen von einem Administrator definiert werden. Dies ist der Bereich in der CUPS-Webschnittstelle, in dem Sie neue Klassen erstellen und verwalten.
- Jobs
-
Hier sieht ein Administrator alle Druckaufträge, die sich aktuell für alle von dieser CUPS-Installation verwalteten Drucker in der Warteschlange befinden.
- Server
-
Hier nimmt ein Administrator Änderungen an der Datei
/etc/cups/cupsd.conf
vor. Außerdem sind über Kontrollkästchen weitere Konfigurationsoptionen erreichbar, z.B. die Freigabe von Druckern, die an diese CUPS-Installation angeschlossen sind, die erweiterte Authentifizierung und die Möglichkeit der Fernverwaltung von Druckern.
- Classes
-
Sind im System Druckerklassen konfiguriert, erscheinen sie auf dieser Seite. Jede Druckerklasse verfügt über Optionen zur gleichzeitigen Verwaltung aller Drucker in der Klasse sowie zur Anzeige aller Aufträge, die sich in der Warteschlange für die Drucker dieser Klasse befinden.
- Help
-
Links zur gesamten CUPS-Dokumentation, die auf dem System installiert ist.
- Jobs
-
Suche nach einzelnen Druckaufträgen sowie eine Liste aller aktuellen, vom Server verwalteten Druckaufträge.
- Printers
-
Alle aktuell vom System verwalteten Drucker mit einem kurzen Überblick über deren jeweiligen Status. Jeder aufgelistete Drucker kann angeklickt werden, und der Administrator landet so auf der jeweiligen Seite zu dessen Verwaltung. Die Informationen zu den Druckern auf dieser Registerkarte stammen aus der Datei
/etc/cups/printers.conf
.
Drucker installieren
Das Hinzufügen einer Druckerwarteschlange zum System ist ein einfacher Vorgang innerhalb der CUPS-Webschnittstelle:
-
Klicken Sie auf die Registerkarte Administration und dann auf die Schaltfläche Add Printer.
-
Auf der nächsten Seite sehen Sie verschiedene Optionen, abhängig davon, wie der Drucker an das System angeschlossen ist. Bei einem lokalen Drucker wählen Sie die relevanteste Option aus, z.B. welchen Anschluss der Drucker nutzt oder welche Druckersoftware von Drittanbietern installiert ist. CUPS versucht darüber hinaus, an das Netzwerk angeschlossene Drucker zu erkennen, und zeigt diese hier an. Sie können auch je nach vom Drucker unterstütztem Netzwerkdruckprotokoll eine direkte Verbindungsoption wählen. Klicken Sie nach Auswahl der entsprechende Option die Schaltfläche Continue.
-
Auf der nächsten Seite vergeben Sie einen Namen, eine Beschreibung und einen Standort für den Drucker (z.B. “Back Office” oder “Front Desk” usw.). Möchten Sie diesen Drucker über das Netzwerk freigeben, aktivieren Sie das entsprechende Kontrollkästchen und klicken danach auf die Schaltfläche Continue.
-
Auf der nächsten Seite wählen Sie Hersteller und Modell des Druckers aus. So durchsucht CUPS seine lokal installierte Datenbank nach den am besten geeigneten Treibern und PPD-Dateien für den Drucker. Haben Sie eine vom Druckerhersteller bereitgestellte PPD-Datei, suchen Sie diese und wählen Sie sie für die Verwendung hier aus. Klicken Sie anschließend auf die Schaltfläche Add Printer.
-
Auf der letzten Seite legen Sie die Standarddruckoptionen fest, z.B. die Seitengröße, die der Drucker verwenden soll, und die Auflösung der auf der Seite gedruckten Zeichen. Klicken Sie anschließend auf die Schaltfläche Set Default Options, ist Ihr Drucker im System installiert.
Note
|
Viele Linux-Desktop-Installationen bieten verschiedene Tools zur Druckerinstallation. Die Desktop-Umgebungen GNOME und KDE haben dazu eigene, integrierte Anwendungen. Einige Distributionen verfügen über separate Anwendungen zur Druckerverwaltung. Für eine Serverinstallation, auf der viele Benutzer drucken, bietet die CUPS-Webschnittstelle möglicherweise die besten Werkzeuge. |
Die Warteschlange eines Druckers können Sie auch mit den herkömmlichen LPD/LPR-Befehlen installieren. Hier ist ein Beispiel mit dem Befehl lpadmin
:
$ sudo lpadmin -p ENVY-4510 -L "office" -v socket://192.168.150.25 -m everywhere
Sehen wir uns den Befehl und die hier verwendeten Optionen genauer an:
-
Da das Hinzufügen eines Druckers zum System einen Benutzer mit administrativen Rechten erfordert, stellen wir dem Befehl
lpadmin
einsudo
voran. -
Die Option
-p
ist das Ziel für Ihre Druckaufträge. Es ist meist ein beschreibender Name, damit der Benutzer weiß, wo die Druckaufträge landen — in der Regel der Name des Druckers. -
Die Option
-L
gibt den Standort des Druckers an. Die Angabe ist optional, aber hilfreich, wenn Sie eine Reihe von Druckern an verschiedenen Standorten verwalten. -
Die Option
-v
steht für die URI des Druckers. Die CUPS-Druckwarteschlange benötigt die Geräte-URI, um gerenderte Druckaufträge an einen bestimmten Drucker zu senden. In unserem Beispiel nutzen wir einen Netzwerkstandort unter Angabe der IP-Adresse. -
Die Option
-m
setzen wir aufeverywhere
(überall). Sie bestimmt das Druckermodell für CUPS, also welche PPD-Datei zum EInsatz kommt. In neueren Versionen von CUPS isteverywhere
sinnvoll, damit CUPS die Geräte-URI (die mit der vorherigen Option-v
gesetzt wurde) überprüft und automatisch die richtige PPD-Datei für den Drucker bestimmt. Heute wird CUPS meist einfach IPP nutzen, wie unten erklärt.
Wie bereits erwähnt, sollten Sie CUPS automatisch bestimmen lassen, welche PPD-Datei es für eine bestimmte Druckwarteschlange nutzt. Der alte Befehl lpinfo
kann jedoch dazu dienen, die lokal installierten PPD-Dateien abzufragen, um zu sehen, welche verfügbar sind. Geben Sie dazu die Option --make-and-model
für den zu installierenden Drucker und die Option -m
an:
$ 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
Beachten Sie, dass der Befehl lpinfo
veraltet ist. Er wird hier als Beispiel für die Auflistung der Druckertreiberdateien gezeigt, die ein Drucker verwenden könnte.
Warning
|
Künftige Versionen von CUPS werden veraltete Treiber enthalten und sich stattdessen auf IPP (Internet Printing Protocol) und Standarddateiformate konzentrieren. Die Ausgabe des vorherigen Befehls veranschaulicht dies mit der Druckfunktion |
Mit dem Befehl lpoptions
definieren Sie einen Standarddrucker, der dann die meisten (oder alle) Druckaufträge annimmt. Geben Sie einfach den Drucker zusammen mit der Option -d
an:
$ lpoptions -d ENVY-4510
Drucker verwalten
Nach der Installation eines Druckers können Sie als Administrator die verfügbaren Optionen über die Webschnittstelle verwalten — noch direkter erfolgt dies mit dem Befehl lpadmin
.
So können Sie etwa die gemeinsame Nutzung eines Druckers im Netzwerk mit der Option printer-is-shared
und durch Angabe des Druckers mit der Option -p
definieren:
$ sudo lpadmin -p FRONT-DESK -o printer-is-shared=true
Oder Sie konfigurieren eine Druckwarteschlange so, dass nur Druckaufträge von bestimmten Benutzern angenommen werden, wobei Benutzer durch Kommata getrennt sind:
$ sudo lpadmin -p FRONT-DESK -u allow:carol,frank,grace
Umgekehrt können Sie bestimmten Benutzern den Zugriff auf eine bestimmte Druckwarteschlange verweigern:
$ sudo lpadmin -p FRONT-DESK -u deny:dave
Benutzergruppen erlauben oder verweigern Sie den Zugriff auf die Warteschlange eines Druckers, indem Sie dem Gruppennamen ein @
voranstellen:
$ sudo lpadmin -p FRONT-DESK -u deny:@sales,@marketing
Eine Druckwarteschlange kann auch über eine Fehlerrichtlinie (Error Policy) verfügen, wenn beim Drucken eines Auftrags Probleme auftreten. Anhand solcher Richtlinien wird ein Druckauftrag abgebrochen (abort-job
) oder ein weiterer Druckversuch zu einem späteren Zeitpunkt erfolgen (retry-job
). Andere Richtlinien halten den Drucker bei einem Fehler sofort an (stop-printer
) oder wiederholen den Druckauftrag sofort (retry-current-job
). Hier ein Beispiel für eine Druckerrichtlinie, nach der der Druckauftrag abgebrochen wird, wenn ein Fehler auf dem Drucker FRONT-DESK
auftritt:
$ sudo lpadmin -p FRONT-DESK -o printer-error-policy=abort-job
Lesen Sie unbedingt die Manpages für den Befehl lpadmin
unter lpadmin(8)
für weitere Einzelheiten.
Druckaufträge übermitteln
Viele Desktopanwendungen bieten Zugriff auf die Druckfunktion über einen Menüpunkt oder über das Tastaturkürzel Strg+p. Auf einem Linux-System ohne Desktopumgebung können Sie Dateien immer noch über die alten LPD/LPR-Befehle an einen Drucker senden.
Der Befehl lpr
(“line printer remote”) sendet einen Druckauftrag an die Warteschlange eines Druckers. In der einfachsten Form geben Sie lediglich noch einen Dateinamen an:
$ lpr report.txt
Der Befehl sendet die Datei report.txt
an die Standarddruckwarteschlange des Systems, wie in der Datei /etc/cups/printers.conf
angegeben.
Hat eine CUPS-Installation mehrere Drucker installiert, geben Sie mit dem Befehl lpstat
eine Liste der verfügbaren Drucker mit der Option -p
aus. Die Option -d
gibt darüber hinaus den Standarddrucker an:
$ 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
Im Beispiel senden wir die Datei report.txt
an den Drucker ENVY-4510
, da dieser als Standarddrucker gesetzt ist. Um die Datei auf einem anderen Drucker auszugeben, bezeichnen wir diesen mit der Option -P
:
$ lpr -P FRONT-DESK report.txt
Wird ein Druckauftrag an CUPS übermittelt, findet der Daemon heraus, welches Backend für die Aufgabe am besten geeignet ist. CUPS kann auf verschiedene Druckertreiber, Filter, Hardware-Port-Monitore und andere Software zurückgreifen, um das Dokument korrekt darzustellen. Es kommt vor, dass ein Benutzer Einstellungen vornehmen möchte, wie ein Dokument gedruckt wird, und viele grafische Anwendungen helfen dabei. Auch Befehlszeilenoptionen können darauf Einfluss nehmen. Übermitteln Sie einen Druckauftrag über die Befehlszeile, bestimmt die Option -o
(für “Options”) in Verbindung mit bestimmten Begriffen Layoutanpassungen des Dokuments für den Druck. Hier eine kurze Liste der häufig verwendeten Optionen:
landscape
-
Dreht das Dokument um 90 Grad im Uhrzeigersinn. Die Option
orientation-requested=4
erzielt dasselbe Ergebnis. two-sided-long-edge
-
Druckt das Dokument im Hochformat auf beiden Seiten des Papiers, sofern der Drucker diese Funktion unterstützt.
two-sided-short-edge
-
Druckt das Dokument im Querformat auf beiden Seiten des Papiers, sofern der Drucker diese Funktion unterstützt.
media
-
Druckt das Dokument im angegebenen Medienformat. Welche Medienformate für einen Druckauftrag zur Verfügung stehen, hängt vom jeweiligen Drucker ab — hier eine Liste der gängigen Formate:
Größenoption Zweck A4
ISO A4
Letter
US Letter
Legal
US Legal
DL
ISO DL Envelope
COM10
US #10 Envelope
collate
-
Sortiert das Dokument, was bei mehrseitigen Dokumenten hilfreich ist, die mehrfach gedruckt werden, da alle Seiten für jedes Exemplar in der richtigen Reihenfolge sind. Setzen Sie diese Option entweder auf
true
, um sie zu aktivieren, oder auffalse
, um sie zu deaktivieren. page-ranges
-
Bestimmt den zu druckenden Seitenbereich eines Dokuments. Ein Beispiel:
-o page-ranges=5-7,9,15
gibt die Seiten 5 bis 7 und dann die Seiten 9 und 15 aus. fit-to-page
-
Passt das Dokument an die Papiergröße an. Enthält die zu druckende Datei keine Informationen über die Seitengröße, kann der Druckauftrag falsch skaliert werden, so dass Teile des Dokuments außerhalb der Seite liegen oder das Dokument zu klein skaliert wird.
outputorder
-
Druckt das Dokument entweder in
reverse
Reihenfolge odernormal
, also beginnend mit der ersten Seite. Wenn ein Drucker die untere Seite bedruckt, ist die Standardreihenfolge-o outputorder=normal
— bei der Oberseite-o outputorder=reverse
.
Folgender Beispielbefehl wäre also möglich:
$ lpr -P ACCOUNTING-LASERJET -o landscape -o media=A4 -o two-sided-short-edge finance-report.pdf
Sie drucken mehrere Exemplare eines Dokuments mit der Anzahloption in folgendem Format: -#N
mit N
als Anzahl der Kopien. Hier ein Beispiel mit der Option collate
, das sieben Kopien eines Berichts auf dem Standarddrucker ausgibt:
$ lpr -#7 -o collate=true status-report.pdf
Neben lpr
steht der Befehl lp
zur Verfügung. Viele Optionen für lpr
gelten auch für lp
, aber es gibt Unterschiede. Schauen Sie auf jeden Fall in der Manpage von lp(1)
nach. Hier sehen Sie, wie wir den vorherigen lpr
-Befehl unter Verwendung der lp
-Syntax ausführen und ebenfalls den Zieldrucker mit der Option -d
angeben:
$ lp -d ACCOUNTING-LASERJET -n 7 -o collate=true status-report.pdf
Druckaufträge verwalten
Wie bereits erwähnt, erhält jeder Druckauftrag, der an die Druckwarteschlange übermittelt wird, von CUPS eine Auftrags-ID. Ein Benutzer listet seine Druckaufträge mit dem Befehl lpq
. Mit der Option -a
erscheinen die Warteschlangen aller von der CUPS-Installation verwalteten Drucker:
$ lpq -a Rank Owner Job File(s) Total Size 1st carol 20 finance-report.pdf 5072 bytes
Auch lpstat
hat eine Option zur Anzeige von Druckerwarteschlangen. Die Option -o
allein zeigt alle Druckerwarteschlangen. Eine bestimmte Druckerwarteschlange geben Sie mit ihrem Namen an.
$ lp -o ACCOUNTING-LASERJET-4 carol 19456 Wed 05 Aug 2020 04:29:44 PM EDT
Der ID des Druckauftrags steht der Name der Warteschlange voran, an die der Auftrag gesendet wurde, dann der Name des Benutzers, der den Auftrag übermittelt hat, die Größe der Datei und die Uhrzeit der Übermittlung.
Hängt ein Druckauftrag auf einem Drucker oder möchte ein Benutzer seinen Druckauftrag abbrechen, hilft der Befehl lprm
zusammen mit der Job-OID, die mit lpq
ermittelt wurde:
$ lprm 20
Sie löschen alle Aufträge in einer Druckwarteschlange, indem Sie nur einen Bindestrich -
angeben:
$ lprm -
Alternativ kann ein Benutzer auch den CUPS-Befehl cancel
verwenden, um seinen aktuellen Druckauftrag zu beenden:
$ cancel
Einen bestimmten Druckauftrag brechen Sie über seine Job-ID mit dem vorangestellten Druckernamen ab:
$ cancel ACCOUNTING-LASERJET-20
Sie können einen Druckauftrag auch von einer Druckwarteschlange in eine andere verschieben, z.B. wenn ein Drucker nicht mehr reagiert oder das zu druckende Dokument Funktionen erfordert, die nur ein anderer Drucker bereitstellt. Beachten Sie, dass für diesen Vorgang in der Regel erweiterte Rechte erforderlich sind. Den Druckauftrag aus dem vorangegangenen Beispiel verschieben wir in die Warteschlange des Druckers FRONT-DESK
wie folgt:
$ sudo lpmove ACCOUNTING-LASERJET-20 FRONT-DESK
Drucker entfernen
Bevor Sie einen Drucker entfernen, empfiehlt es sich, zunächst alle aufzulisten, die der CUPS-Dienst aktuell verwaltet. Das geschieht mit dem Befehl 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
Die Option -v
listet nicht nur die Drucker auf, sondern auch, wo (und wie) sie angeschlossen sind. Sie sollten zunächst alle neuen Aufträge, die an den Drucker gehen, ablehnen und einen Grund angeben, warum der Drucker keine neuen Aufträge annimmt:
$ sudo cupsreject -r "Printer to be removed" FRONT-DESK
Beachten Sie die Verwendung von sudo
, da diese Aufgabe erweiterte Rechte erfordert.
Um einen Drucker zu entfernen, verwenden wir den Befehl lpadmin
mit der Option -x
:
$ sudo lpadmin -x FRONT-DESK
Geführte Übungen
-
Auf einer lokalen Workstation mit dem Namen
office-mgr
wurde gerade ein neuer Drucker installiert. Mit welchem Befehl machen Sie diesen Drucker zum Standarddrucker des Systems? -
Mit welchem Befehl und welchen Optionen stellen Sie fest, welche Drucker für das Drucken von einer Workstation aus verfügbar sind?
-
Wie löschen Sie den Druckauftrag mit der ID 15 in der Warteschlange für den Drucker
office-mgr
mit dem Befehlcancel
? -
Sie haben einen Druckauftrag für einen Drucker, der nicht genug Papier hat, um die gesamte Datei zu drucken. Mit welchem Befehl verschieben Sie den Druckauftrag mit der ID 2 in der Warteschlange des Druckers
FRONT-DESK
in die Warteschlange des DruckersACCOUNTING-LASERJET
?
Offene Übungen
Installieren Sie mit dem Paketmanager Ihrer Distribution die Pakete cups
und printer-driver-cups-pdf
. Beachten Sie, dass der CUPS PDF-Treiber cups-pdf
heißt, wenn Sie eine Red Hat-basierte Distribution (wie Fedora) verwenden. Installieren Sie auch das Paket cups-client
, um die Druckbefehle im Stil von System V zu nutzen. Wir werden diese Pakete verwenden, um die Verwaltung eines CUPS-Druckers zu üben, ohne einen echten Drucker zu installieren.
-
Vergewissern Sie sich, dass der CUPS-Daemon läuft und dass der PDF-Drucker aktiviert und auf die Standardeinstellung gesetzt ist.
-
Führen Sie einen Befehl aus, der die Datei
/etc/services
ausgibt. Sie sollten nun ein Verzeichnis namensPDF
in Ihrem Homeverzeichnis haben. -
Verwenden Sie einen Befehl, der nur den Drucker deaktiviert, und führen Sie dann einen separaten Befehl aus, der alle Statusinformationen anzeigt, um zu überprüfen, ob der PDF-Drucker deaktiviert ist. Versuchen Sie dann, eine Kopie Ihrer
/etc/fstab
-Datei zu drucken. Was passiert nun? -
Versuchen Sie nun, eine Kopie der Datei
/etc/fstab
auf dem PDF-Drucker auszudrucken. Was geschieht? -
Brechen Sie den Druckauftrag ab und entfernen Sie dann den PDF-Drucker.
Zusammenfassung
Der CUPS-Daemon ist eine weit verbreitete Plattform für das Drucken auf lokalen und entfernten Druckern. Er ersetzt zwar das alte LPD-Protokoll, bietet aber weiterhin Abwärtskompatibilität für diese Werkzeuge.
Die in dieser Lektion behandelten Dateien und Befehle waren:
/etc/cups/cupsd.conf
-
Die primäre Konfigurationsdatei für den CUPS-Dienst selbst. Die Datei steuert auch den Zugriff auf die Webschnittstelle für CUPS.
/etc/printcap
-
Eine von LPD verwendete Legacy-Datei mit je einer Zeile für jeden an das System angeschlossenen Drucker.
/etc/cups/printers.conf
-
Die Konfigurationsdatei, die CUPS für Druckerinformationen nutzt.
Die CUPS-Webschnittstelle, die bei einer Standardinstallation unter http://localhost:631
zu finden ist. Beachten Sie, dass der Standardnetzwerkanschluss für die Webschnittstelle 631/TCP ist.
Die folgenden alten LPD/LPR-Befehle wurden ebenfalls besprochen:
lpadmin
-
Installiert und entfernt Drucker und Druckerklassen.
lpoptions
-
Zeigt Druckeroptionen und ändert Druckereinstellungen.
lpstat
-
Zeigt Statusinformationen über die an eine CUPS-Installation angeschlossenen Drucker.
lpr
-
Übermittelt Druckaufträge an die Warteschlange eines Druckers.
lp
-
Übermittelt Druckaufträge an die Warteschlange eines Druckers.
lpq
-
Listet die Druckaufträge in der Druckwarteschlange auf.
lprm
-
Bricht Druckaufträge nach ID ab. Die ID für einen Auftrag zeigt die Ausgabe des Befehls
lpq
. cancel
-
Eine Alternative zum Befehl
lprm
, um Druckaufträge über ihre ID abzubrechen.
Lesen Sie unbedingt die folgenden Manpages für die verschiedenen Werkzeuge und Dienstprogramme für CUPS: lpadmin(8)
, lpoptions(1)
, lpr(1)
, lpq(1)
, lprm(1)
, cancel(1)
, lpstat(1)
, cupsenable(8)
und cupsaccept(8)
. Es empfiehlt sich ebenfalls, die Online-Hilfe unter http://localhost:631/help
zu lesen.
Lösungen zu den geführten Übungen
-
Auf einer lokalen Workstation mit dem Namen
office-mgr
wurde gerade ein neuer Drucker installiert. Mit welchem Befehl machen Sie diesen Drucker zum Standarddrucker des Systems?$ lpoptions -d office-mgr
-
Mit welchem Befehl und welchen Optionen stellen Sie fest, welche Drucker für das Drucken von einer Workstation aus verfügbar sind?
$ lpstat -p
Die Option
-p
listet alle verfügbaren Drucker auf und gibt an, ob sie zum Drucken aktiviert sind. -
Wie löschen Sie den Druckauftrag mit der ID 15 in der Warteschlange für den Drucker
office-mgr
mit dem Befehlcancel
?$ cancel office-mgr-15
-
Sie haben einen Druckauftrag für einen Drucker, der nicht genug Papier hat, um die gesamte Datei zu drucken. Mit welchem Befehl verschieben Sie den Druckauftrag mit der ID 2 in der Warteschlange des Druckers
FRONT-DESK
in die Warteschlange des DruckersACCOUNTING-LASERJET
?$ sudo lpmove FRONT-DESK-2 ACCOUNTING-LASERJET
Lösungen zu den offenen Übungen
Installieren Sie mit dem Paketmanager Ihrer Distribution die Pakete cups
und printer-driver-cups-pdf
. Beachten Sie, dass der CUPS PDF-Treiber cups-pdf
heißt, wenn Sie eine Red Hat-basierte Distribution (wie Fedora) verwenden. Installieren Sie auch das Paket cups-client
, um die Druckbefehle im Stil von System V zu nutzen. Wir werden diese Pakete verwenden, um die Verwaltung eines CUPS-Druckers zu üben, ohne einen echten Drucker zu installieren.
-
Vergewissern Sie sich, dass der CUPS-Daemon läuft und dass der PDF-Drucker aktiviert und auf die Standardeinstellung gesetzt ist.
Eine Methode, um die Verfügbarkeit und den Status des PDF-Druckers zu überprüfen, ist der folgende Befehl:
$ lpstat -p -d printer PDF is idle. enabled since Thu 25 Jun 2020 02:36:07 PM EDTi system default destination: PDF
-
Führen Sie einen Befehl aus, der die Datei
/etc/services
ausgibt. Sie sollten nun ein Verzeichnis namensPDF
in Ihrem Homeverzeichnis haben.$ lp -d PDF /etc/services
Es befindet sich nun eine PDF-Version dieser Datei im Verzeichnis
PDF
. -
Verwenden Sie einen Befehl, der nur den Drucker deaktiviert, und führen Sie dann einen separaten Befehl aus, der alle Statusinformationen anzeigt, um zu überprüfen, ob der PDF-Drucker deaktiviert ist.
$ sudo cupsdisable PDF
aktiviert den Drucker.
Der anschließende Befehl
lpstat -t
liefert eine vollständige Liste des Druckerzustands. Sie sollte in etwa wie folgt aussehen:$ scheduler is running system default destination: PDFi device for PDF: cups-pdf:/ PDF accepting requests since Wed 05 Aug 2020 04:19:15 PM EDTi printer PDF disabled since Wed 05 Aug 2020 04:19:15 PM EDT - Paused
-
Versuchen Sie nun, eine Kopie der Datei
/etc/fstab
auf dem PDF-Drucker auszudrucken. Was geschieht?Der Befehl
lp -d PDF /etc/fstab
sollte eine Ausgabe mit der Job-ID liefern. Wenn Sie jedoch den PDF-Ordner in Ihrem Homeverzeichnis überprüfen, ist die neue Datei dort nicht zu finden. Sie überprüfen dann die Druckwarteschlange mit dem Befehllpstat -o
und finden den Auftrag dort aufgeführt. -
Brechen Sie den Druckauftrag ab und entfernen Sie dann den PDF-Drucker.
Verwenden Sie die Ausgabe des vorherigen Befehls
lp
, um den Auftrag mit dem Befehlcancel
zu löschen. Zum Beispiel:$ cancel PDF-4
Führen Sie dann den Befehl
lpstat -o
aus, um zu überprüfen, ob der Auftrag gelöscht wurde.Entfernen Sie den PDF-Drucker mit folgendem Befehl:
sudo lpadmin -x PDF
. Überprüfen Sie dann, ob der Drucker entfernt wurde:lpstat -a
.