[[Vorlage(Getestet, focal, jammy)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:CUPS: CUPS – Das Standard-Unix-Drucksystem] [:Programme_starten: Programme im Terminal ausführen] }}} [[Inhaltsverzeichnis()]] [[Bild(cups.png, 32, align=left)]] 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 [#Links Common Unix Printing System] ([[Bild(Wiki/Icons/Portal/wiki.png,14,)]] [:CUPS:]). Andere Drucksysteme wie [http://lprng.com/ LPRng] {en}, das [wikipedia_en:Berkeley_printing_system:BSD-Drucksystem] und das [wikipedia_en:System_V_printing_system: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: {{{#!vorlage Paketinstallation cups, main cups-bsd, main }}} 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 ([[Bild(Wiki/Icons/Portal/wiki.png,14,)]] [:man:]). Diese und weitere Hilfeseiten sind zu finden unter http://localhost:631/help/. {{{#!vorlage Hinweis Diese Seite ist nur aufrufbar, wenn CUPS installiert ist. Siehe auch den zugehörigen [:CUPS/#Weboberflaeche:Abschnitt] im CUPS-Hauptartikel. }}} == Für alle Befehle geltende Optionen == {{{#!vorlage Tabelle Option <:>Nutzen +++ `-E` Verbindung zum Server verschlüsseln +++ `-h server[:port]` Alternativen Server [Port] spezifizieren +++ `-U` Benutzernamen für die Serververbindung setzen }}} {{{#!vorlage 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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-cupsdisable 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: {{{#!vorlage Befehl 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 {{{#!vorlage 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: {{{#!vorlage Befehl 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`: {{{#!vorlage Befehl 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 [#Links 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl lpinfo -m }}} Zum unwiderruflichen Löschen einer Warteschlange mit allen eventuell darin enthaltenen Druckaufträgen benutzt man diesen Befehl: {{{#!vorlage Befehl lpadmin -x QUEUE }}} Ausführliche Hilfe und Anleitung zu dem Befehl findet sich auf der [#Links Hauptseite von CUPS] oder in der Manpage: {{{#!vorlage Befehl 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: * Aufgerufen von root setzt/ändert/löscht es Druckoptionen, die für alle Benutzer gelten. * Aufgerufen durch einen normalen Benutzer bearbeitet es Druckoptionen, welche nur für diesen Benutzer gelten. Jeder Benutzer kann also die systemweit geltenden Vorgaben für sich persönlich anpassen. Das gilt insbesondere auch für den persönlich bevorzugten Standard-Drucker. 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 [#Links 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: {{{#!vorlage Befehl 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 [:Shell/Umleitungen:Standard-Input] zu lesen und zu drucken. Dies ermöglicht die Verwendung in [:Shell/Umleitungen/#Der-Pipe-Operator:Pipes]: {{{#!vorlage Befehl 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: {{{#!vorlage Tabelle <-2 tableclass="zebra_start3" rowclass="titel" :> 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 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. }}} {{{#!vorlage Tabelle <-2 tableclass="zebra_start3" rowclass="titel" :> 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. {{{#!vorlage Tabelle 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 === {{{#!vorlage Hinweis Für diesen Abschnitt werden noch Autoren gesucht. Bitte beim [:ubuntuusers/Wikiteam:Wikiteam] melden!\\ Für Interessenten: Siehe diesen [https://opensource.apple.com/source/cups/cups-218/cups/doc/help/ref-mailto-conf.html Link]. }}} ## (Abschnitt leer) == 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: {{{#!vorlage Befehl lprm - }}} Zudem kann man als Argument eine Auftrags-ID angeben. Diese lässt sich mit dem Befehl [#Statusinformationen-lpstat `lpstat`] ermitteln. Sie wird aber auch beim Aufruf des Befehls `lp` angezeigt, wenn man nicht die Option `-s` gesetzt hat. Beispiel: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl lpmove 30 Brother_HL_L2360D_series }}} Alternativ kann man statt der ID den Namen einer Warteschlange angeben: {{{#!vorlage Befehl 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`: {{{#!vorlage Befehl 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. = Links = * [:CUPS:] – Hauptartikel im UbuntuUsers-Wiki * [https://www.cups.org/ Apple CUPS] {en} – Hauptseite von Apple CUPS. (Grundlage für die bei Ubuntu bis 21.10 verwendete Version.) * [https://openprinting.github.io/cups/ OpenPrinting CUPS] {en} – Hauptseite von OpenPrinting CUPS. Dies ist ein Fork von Apple CUPS (September 2020) und die Grundlage für die bei Ubuntu ab 22.04 verwendete Software. * [https://www.cups.org/documentation.html] {en} – CUPS-Dokumentation bei Apple * [https://openprinting.github.io/cups/#DOCUMENTATION] {en} – CUPS-Dokumentation bei OpenPrinting #tag: Server, System, Drucker, Netzwerk