CUPS/Drucken per Kommandozeile

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Installation von Programmen

  2. ⚓︎ Ein Terminal öffnen

  3. ⚓︎ CUPS – Das Standard-Unix-Drucksystem

  4. ⚓︎ Programme im Terminal ausführen

Inhaltsverzeichnis
  1. Installation
  2. Konfiguration
  3. Befehle
    1. Für alle Befehle geltende Optionen
    2. Statusinformationen – lpstat
    3. Warteschlangen konfigurieren – lpadmin
    4. Druckeinstellungen – lpoptions
    5. Drucken
      1. Einstellungen
      2. E-Mail-Benachrichtigung
    6. Druckaufträge löschen – lprm
    7. Druckaufträge verschieben – lpmove
    8. Warteschlangen verwalten
      1. cupsenable/cupsdisable
      2. cupsaccept/cupsreject
  4. Links

cups.png Dieser Artikel beschäftigt sich mit den Werkzeugen lpstat, lpr, lpoptions, lp, lprm, lpmove und lpadmin sowie cupsenable/cupsdisable und cupsaccept/cupsreject. Diese sind Teil des Common Unix Printing System (Wiki/Icons/Portal/wiki.png CUPS). Andere Drucksysteme wie LPRng 🇬🇧, das BSD-Drucksystem und das System V Drucksystem bieten ebenfalls diese Befehle, sind aber nicht Teil des Artikels.

Die hier vorgestellten Programme ermöglichen auf der Kommandozeile oder in Skripten die Einrichtung und Verwaltung der von CUPS betreuten Warteschlangen für Druckaufträge sowie auch die Einreichung und Pflege von Druckaufträgen.

Installation

Die Programme befinden sich in den Paketen cups-bsd und cups-client. Letzteres ist eine Abhängigkeit von dem Paket cups welches (fast) das gesamte CUPS-Drucksystem umfasst. Beide Pakete können aus den Paketquellen installiert werden:

Befehl zum Installieren der Pakete:

sudo apt-get install cups cups-bsd 

Oder mit apturl installieren, Link: apt://cups,cups-bsd

Außer den in der Einleitung genannten sind noch die Programme lpc, lpq und lpinfo in den Paketen vorhanden, diese sind jedoch veraltet und werden aus CUPS in Zukunft entfernt.

Konfiguration

Zur Konfiguration von CUPS siehe den zugehörigen Artikel.

Befehle

Für alle Befehle siehe auch die zugehörigen Manual Pages (Wiki/Icons/Portal/wiki.png man). Diese und weitere Hilfeseiten sind zu finden unter http://localhost:631/help/.

Hinweis:

Diese Seite ist nur aufrufbar, wenn CUPS installiert ist. Siehe auch den zugehörigen Abschnitt im CUPS-Hauptartikel.

Für alle Befehle geltende Optionen

Option Nutzen
-E Verbindung zum Server verschlüsseln
-h server[:port] Alternativen Server [Port] spezifizieren
-U Benutzernamen für die Serververbindung setzen

Hinweis:

Wenn in der Dokumentation zu CUPS oder in den Ausgaben der Befehle das Wort "printer" oder eingedeutscht „Drucker“ verwendet wird, so ist damit meistens kein physisches Gerät, sondern der Name einer Warteschlange gemeint.

Eine von CUPS verwaltete Warteschlange hat immer ein Ziel; dies kann auch ein physischer Drucker sein.

Statusinformationen – lpstat

Der Befehl lpstat zeigt Statusinformation zum Gesamtsystem, zu den verfügbaren Warteschlangen und den sich darin befindenden Druckaufträgen an.

Er gibt ohne Optionen alle aktuellen Druckaufträge aus, mit der Option -u BENUTZER nur die des angegebenen Benutzers.

Die Option -r fragt ab, ob auf dem angesprochenen Rechner CUPS überhaupt aktiv ist, -d zeigt den Namen der Standardwarteschlange (die in allen Befehlen benutzt wird, wenn keine Warteschlange explizit angegeben wird) und -e die Namen aller erreichbaren Warteschlangen. Die Optionen können einzeln oder kombiniert verwendet werden:

lpstat -r -d -e 

Zeitplandienst läuft
keine systemvoreingestellten Ziele
hplj
Nirvana

Mit der Option -p gibt er alle Warteschlangen aus. Die Option -d zeigt zusätzlich den Standard-Systemdrucker:

lpstat -p -d  

printer Brother_HL_L2360D_series is idle.  enabled since Tue 02 Aug 2022 12:38:38 PM CEST
system default destination: Brother_HL_L2360D_series

Man kann hinter der Option -p eine Warteschlange angeben, für die die Statusmeldungen dann gelten:

lpstat -p Brother_HL_L2360D_series 

printer Brother_HL_L2360D_series now printing Brother_HL_L2360D_series-25.  enabled since Thu 04 Aug 2022 09:28:23 AM CEST
	Color Manager: no profiles specified in PPD

Die Option -v identifiziert die Ziele, an die CUPS die Aufträge aus der jeweiligen Warteschlange übergibt. Dies ist immer ein Programm (backend), welches die aufbereiteten Daten des Druckauftrags an ein physisches Gerät übergibt, oder auch auf einem Massenspeicher ablegt oder etwas anderes damit macht, z.B. wäre auch ein Versand per E-Mail oder Fax möglich.

Die Option '-a' (wahlweise alleine stehend oder mit Angabe einer Warteschlange), zeigt an, ob die Warteschlange(n) neue Aufträge annehmen oder abweisen. Auch diese Optionen sind kombinierbar:

lpstat -p -a -v 

Drucker hplj ist im Leerlauf.  Aktiviert seit So 11 Sep 2022 11:55:22 CEST
Drucker Nirvana ist deaktiviert seit So 11 Sep 2022 11:56:12 CEST -
	Paused
hplj akzeptiert Anfragen seit So 11 Sep 2022 11:55:22 CEST
Nirvana akzeptiert Anfragen seit So 11 Sep 2022 11:56:12 CEST
Gerät für hplj: socket://192.168.178.20
Gerät für Nirvana: /dev/null

Im Beispiel kann man Aufträge in die Warteschlange Nirvana einstellen, diese werden jedoch nicht abgearbeitet. Wenn man das mit cupsenable ändert, werden sie nach /dev/null kopiert. Die Warteschlange hplj nimmt sowohl Aufträge an und arbeitet diese auch ab, indem sie über das Netzwerk an die angegebene IP-Adresse verschickt werden, aber momentan ist sie leer.

Mit der Option -o werden alle Aufträge in den Warteschlangen aufgelistet:

lpstat -o 

Nirvana-18              kB                3072   So 11 Sep 2022 11:57:10 CEST

Die Option -t ist eine Abkürzung für: -r -d -a -p -v -o (und zusätzlich die hier nicht besprochene Option -c.)

Alle Optionen und weitere Informationen kann man in der Manpage nachlesen.

Warteschlangen konfigurieren – lpadmin

Der Befehl lpadmin wird benutzt, um Warteschlangen einzurichten und zu konfigurieren. Solche Konfigurationen können nur von dazu berechtigten Benutzern (bei Ubuntu sind dies die in der Gruppe lpadmin) oder von root erfolgen.

Mit dem Befehl

lpadmin -d QUEUE 

wird eine bereits existierende Warteschlange QUEUE zum „Standard-Drucker“ des angesprochenen CUPS-Servers.

Bei der Erzeugung oder Änderung einer Warteschlange muss diese mit der Option -p QUEUE angegeben werden.

Zur Einrichtung einer Warteschlange muss mindestens mit der Option -v das Ziel (z.B. der physische Drucker) angegeben werden. Dies geschieht im Form einer Drucker-URI. Beispiel:

lpadmin -p hplj -v socket://192.168.178.20 

Dabei wird die Option -p zum Vergeben des Namens genutzt. Zum Auflisten aller vorhandenen Drucker-URIS dient der Befehl lpinfo:

lpinfo -v  

Weitere Eigenschaften können direkt bei der Einrichtung z.B. mit der Option -o angegeben werden oder später hinzugefügt oder geändert werden. Eine Liste mit den verfügbaren Optionen findet sich auf der Hauptseite von CUPS. Dieses Beispiel sorgt für ein Dateigrößen-Limit von 100 Kilobytes für die angegebene Warteschlange und den durch diese bestimmten Drucker:

lpadmin -p Brother_HL_L2360D_series -o job-k-limit=100 

Zur nur für die Benutzer relevanten Beschreibung einer Warteschlange kann man die Optionen -D und -L verwenden. Manche GUI-Programme benutzen diese Informationen.

Die Art der Aufbereitung der Auftragsdaten kann bis CUPS-Version 2.4 (verwendet bei Ubuntu 22.04) mit einem Druckertreiber in Form einer PPD-Datei über die Option -m festgelegt werden. Eine Liste der auf dem eigenen System verfügbaren Druckertreiber erzeugt dieser Befehl:

lpinfo -m 

Zum unwiderruflichen Löschen einer Warteschlange mit allen eventuell darin enthaltenen Druckaufträgen benutzt man diesen Befehl:

lpadmin -x QUEUE 

Ausführliche Hilfe und Anleitung zu dem Befehl findet sich auf der Hauptseite von CUPS oder in der Manpage:

man lpadmin 

Druckeinstellungen – lpoptions

Einstelllungen für die Druckaufbereitung tätigen. Mit -p kann man die Warteschlange angeben, für den die Einstellungen gelten sollen.

Das Programm lpotions kann von root oder von einem normalen Benutzer aufgerufen werden und bewirkt je nachdem unterschiedliches:

Mit der Option -d DRUCKER lässt sich der Standard-Drucker festlegen, mit -l lassen sich alle Optionen anzeigen. Mithilfe der Option -o OPTION lassen sich Optionen setzen. Für die Optionen siehe die CUPS-Dokumentation.

Die benutzerspezifischen Optionen werden unter ~/.cups/lpoptions gespeichert, die für alle Benutzer geltenden unter /etc/cups/lpoptions.

Drucken

CUPS unterstützt für das Drucken von Dateien die beiden Befehle lp und lpr.

Die einfachste Benutzung für beide Befehle:

lp DATEINAME
lpr DATEINAME 

Dies übergibt die angegeben Datei an die als Standard-Drucker eingestellte Warteschlange, man kann aber auch mit der Option -d bei lp bzw. -P bei lpr eine bestimmte Warteschlange ansprechen.

Außerdem ist es den Befehlen möglich, aus dem Standard-Input zu lesen und zu drucken. Dies ermöglicht die Verwendung in Pipes:

echo Bla bla blub … | lp -d Nirvana 

Das Drucken lässt sich mit den zahlreichen Optionen erweitert konfigurieren, von denen die Wichtigsten im Folgenden aufgelistet sind:

Wichtigste Optionen des Befehls lp
Option Benutzung
-d DRUCKER Sendet die Druckanfrage an die genannten Warteschlange.
-i ID Spezifiziert einen Druckauftrag mittels ID, den man verändern möchte.
-m Sendet eine Email, wenn der Druckauftrag beendet ist. Zur Konfiguration siehe E-Mail-Benachrichtigung
-n NUMMER Gibt die Nummer der anzufertigenden Kopien an.
-o name=wert [ ... name=wert ] Mittels dieser Option lassen sich einige Druckeinstellungen tätigen. Siehe eine Liste von Namen und Werten hierunter
-H hold/immideate/Stunden:Minuten/restart/resume Bei immideate wird sofort gedruckt, bei Zeitangabe nach der angegeben Zeit, bei restart wird der Druckauftrag neu gestartet, hold hält ihn an, er lässt sich dann mit lp -i ID -H resume wieder starten.
-P SEITENLISTE Die Liste besteht aus mit Kommata getrennten Zahlen und Bereichen, welche mit - angegeben werden, z.B.: 1,3-5,16,18-20 . Diese geben die Seiten der Eingabe an, welche gedruckt werden sollen.

Von denen des Befehls lp unterschiedliche Optionen von lpr
Option Benutzung
-# ZAHL Damit kann man die Anzahl der Kopien angeben.
-r Die angegebenen Dateien werden nach dem Drucken gelöscht.
-P ZIEL Druckt das Eingabedokument zum angegebenen Ziel
-q ID Aktuellen Auftrag oder den Auftrag mit der ID stoppen.
-p Jede Seite mit einem Kopf drucken, dieser enthält: Datum, Zeit, Druckauftrag-Name und Seitennummer.
-I Fertig formatierte Datei ohne Filtern an den Drucker senden (Äquivalent zu -o raw) (Nicht bei Ubuntu 22.04 verfügbar.)

Die Optionen -H, -h, -c, -d, -t und -n existieren für lpr nicht.

Einstellungen

Mit der Option -o name=wert des lassen sich einige Einstellungen bezüglich des Druckens tätigen. Die wichtigsten sind hier aufgelistet. Sie gelten für beide Befehle.

Name/Wert-Paar Beschreibung
print-quality=3/4/5 Legt die Qualität der Druckausgabe fest: Entwurf (3), Normal (4), Ausgezeichnet (5)
media=Größe Die Größe der Druckausgabe. Zum Beispiel: a4, letter oder legal
orientation-requested=4/5/6 Orientierung des Inhalts auf der Seite: gedreht um 90° gegen den Uhrzeigersinn (4), gedreht um 90° mit dem Uhrzeigersinn (5), um 180° gedreht (6)
sides=one-sided/two-sided-long-edge/two-sided-short-edge Einseitiges Drucken/Zweiseitiges Drucken (Hochformat)/Zweiseitiges Drucken (Querformat)

E-Mail-Benachrichtigung

Hinweis:

Für diesen Abschnitt werden noch Autoren gesucht. Bitte beim Wikiteam melden!
Für Interessenten: Siehe diesen Link.

Druckaufträge löschen – lprm

Mithilfe des Befehls lprm lassen sich Druckaufträge löschen. Den aktuellen Job kann man mithilfe einfachen Aufrufs des Befehls löschen. Möchte man alle Aufträge löschen, geht das folgendermaßen:

lprm - 

Zudem kann man als Argument eine Auftrags-ID angeben. Diese lässt sich mit dem Befehl lpstat ermitteln. Sie wird aber auch beim Aufruf des Befehls lp angezeigt, wenn man nicht die Option -s gesetzt hat. Beispiel:

lprm 26 

Druckaufträge verschieben – lpmove

Mit dem Befehl lpmove kann man auf ihre Bearbeitung wartende Druckaufträge in eine andere Warteschlange verschieben.

Der Befehl nimmt zwei Argumente entgegen, einmal die ID eines Druckauftrags und den Namen der neuen Warteschlange. Beispiel:

lpmove 30 Brother_HL_L2360D_series  

Alternativ kann man statt der ID den Namen einer Warteschlange angeben:

lpmove Brother_HL_L2360D_series Brother_QL_570 

Dies verschiebt alle Druckaufträge aus der zuerst genanntem Warteschlange in die an zweiter Stelle genannte Warteschlange.

Warteschlangen verwalten

cupsenable/cupsdisable

Diese Befehle starten bzw. stoppen die Abarbeitung von Warteschlangen. Als Parameter übergibt man den Befehlen den/die Namen der Warteschlange(n). Mit der Option -c wird zusätzlich ein gerade druckender Auftrag abgebrochen.

Für cupsdisable gibt es außerdem noch die Option --hold, welche zusätzlich die wartenden Druckaufträge anhält, die gerade druckenden Aufträge aber noch abarbeitet.

Um die Abarbeitung der Warteschlange wieder zu starten, nutzt man anschließend cupsenable mit der Option --release:

cupsenable --release Brother_HL_L2360D_series 

cupsaccept/cupsreject

Hiermit lässt sich CUPS instruieren, Aufträge für die angegebene(n) Warteschlange(n) anzunehmen bzw. abzulehnen.

Der Befehl cupsreject kennt noch die Option -r 'TEXT' mit nachfolgend TEXT als Grund. Dies dient nur zur Information der Benutzer.