Startseite>Shell-Befehle für die Administration von Cups
Aus Raspberry Pi Geek 05/2016

Shell-Befehle für die Administration von Cups

© Loopall, 123RF

Drucken auf Kommando

Harald Zisler

Ein Raspberry Pi eignet sich bestens als Druckserver für kleine Netze, zumal sich der Server-Dienst Cups auch abseits von Web- und GUI-Oberflächen via Terminal verwalten lässt.

Der Raspberry Pi bietet sich als kleiner Printserver geradezu an. Als klassische Softwarelösung dafür dient das Common Unix Printing System oder kurz Cups, das weniger komfortable Druckdienste aus dem Linux- und Unix-Umfeld wie Lpd oder Lprng ersetzt. Sie installieren Cups mit den Befehlen aus Listing 1.

Als Grundlage verwendet der Dienst PPD-Dateien (Postscript Printer Description), die die Eigenschaften eines Druckers enthalten. Dazu gehören unter anderem die mögliche Auflösung, die nutzbaren Farben sowie die Arten, Formate, Einzüge und Kassetten für das Papier. Für viele weit verbreitete Modelle bringt Cups solche PPD-Beschreibungen schon mit. Im Zweifelsfall verwenden Sie das PPD, das der Hersteller des Druckers dem jeweiligen Gerät beigelegt hat. Die meisten Anbieter stellen solche PPDs für Geräte bereit, die sich auch zum Einsatz unter Apple OS X eignen.

Das Funktionsprinzip von Cups gestaltet sich recht einfach. Die Anwendungen senden ihren Druckauftrag an den Cups-Scheduler. Der verwaltet die Warteschlangen und sorgt für deren sequenzielles Abarbeiten. Er leitet die Druckdaten an einen Konverter (Filter) weiter, der sie in das Postscript-Format (PS) umsetzt. Die erzeugten PS-Daten landen schließlich bei einem PS-Drucker, einem weiteren Cups-Server oder einem Backend. Letzteres wandelt die PS-Daten im Bedarfsfall in ein Format um, das ein Nicht-Postscript-Drucker verarbeiten kann.

Listing 1

 

$ sudo apt update
$ sudo apt dist-upgrade
$ sudo apt install cups printer-driver-gutenprint

Drucker und Warteschlangen

Das Verwalten von Cups außerhalb der grafischen Oberfläche unterscheidet sich durch verschiedene Einzelbefehle gegenüber den klassischen Werkzeugen. Dieser Artikel wechselt bei der Beschreibung zwischen Druckern und Warteschlangen – für Shell-Kommandos ist das meistens gleichbedeutend. Es gilt aber, zu beachten, dass Sie für einen Drucker mehrere Warteschlangen einrichten können. Das ist dann sinnvoll, wenn Sie Geräte etwa mit Erweiterungen wie zusätzlichen Papierkassetten ausstatten und diese mit verschiedenem Papier befüllen.

Grundsätzlich besteht die Druckerverwaltung aus einer Sammlung von kleinen Programmen, die jedes für sich einen bestimmten Zweck erfüllen. Die Tabelle “Cups-Verwaltung” listet sie zusammen mit den jeweiligen Aufgaben auf. Einstellungen am Printserver erfordern stets administrative Rechte. Melden Sie sich deshalb entweder als Benutzer root am System an, oder führen Sie die Kommandos mit vorangestelltem sudo aus.

Cups-Verwaltung

Kommando

Aufgabe

lpadmin

Druckerwarteschlangen konfigurieren

lpinfo

unterstützte Geräte auflisten

lpoptions

Druckeroptionen auflisten und setzen

lpstat

Druckerstatus abfragen

lpc

Druckerstatus abfragen (Cups-Version)

cupsctl

Optionen von Cupsd konfigurieren

cupsaccept

Druckaufträge annehmen

cupsreject

Druckaufträge ablehnen

cupsenable

Druckerwarteschlange starten

cupsdisable

Druckerwarteschlange beenden

cupsaddsmb

Drucker über Samba für Windows-Clients anbieten

Vorarbeiten

Als Erstes kopieren Sie alle verfügbaren PPD-Dateien der anzusteuernden Drucker in das Verzeichnis /etc/cups/ppd. Ermitteln Sie alle notwendigen Daten der Drucker: Schnittstelle (USB/Seriell/Paralell) oder IP-Adresse, Hostname (falls verwendet), genaue Modellbezeichnung, installierte Erweiterungen (zweite Papierkassette, zusätzliche Ablagen, Speichererweiterungen, Schriften-ROMs, etc.). Bei Netzwerkdruckern müssen Sie zudem ermitteln, welche Protokolle und Ports der Drucker nutzt. Im Zweifelsfall hilft bei einem eingeschalteten Netzwerkdrucker ein Portscan via Nmap (Abbildung 1).

Abbildung 1: Um zu ermitteln, welche Ports und Protokolle ein Netzwerkdrucker verwendet, leistet der Portscanner Nmap wertvolle Dienste.

Abbildung 1: Um zu ermitteln, welche Ports und Protokolle ein Netzwerkdrucker verwendet, leistet der Portscanner Nmap wertvolle Dienste.

In unserem Beispiel handelt es sich um einen Kyocera FS-2000 älteren Baujahrs. Die Ausgabe zeigt, dass dieser das Internet Printing Protocol (IPP) auf Port 631 verwendet. Daneben kennt er das von HP entwickelte JetDirect-Protokoll, ersichtlich an den offenen Ports 9100 bis 9103. Daneben unterstützt er auch das von Lpd und Lprng genutzte Line Printer Daemon Protocol (Port 515).

Um einen Drucker über den USB-Port einzubinden, schließen Sie diesen an und führen nach dem Einschalten das Kommando lpinfo -v aus. Sie erhalten damit die für das spätere Vorgehen wichtige Geräte-URL (Abbildung 2). Damit Sie den Drucker beim Anlegen richtig ansprechen können, müssen Sie dessen URL entsprechend formulieren. Entsprechende Muster zeigt Ihnen die Tabelle “Drucker-URLs”. Bei einem Raspberry Pi als Printserver geben Sie dessen Hostnamen oder IP-Adresse an.

Abbildung 2: Das Kommando »lpinfo -v« startet eine Abfrage aller physikalisch am Rechner angeschlossener Drucker – im Beispiel ein Kyocera FS-1370DN am USB-Port.

Abbildung 2: Das Kommando »lpinfo -v« startet eine Abfrage aller physikalisch am Rechner angeschlossener Drucker – im Beispiel ein Kyocera FS-1370DN am USB-Port.

Drucker-URLs

Schnittstelle

Angabe

Beispiel

USB-Anschluss

usb://Hersteller/Modell?Seriennummer

usb://Kyocera/FS-1370DN?serial=Q660918195

 

usb:/dev/usb/lpNummer

usb:/dev/usb/lp0

Netzwerk LPD

lpd://Hostname/Warteschlange

lpd://fs2000/lp1

 

lpd://IP-Adresse/Warteschlange

lpd://192.168.0.53/lp1

Netzwerk Socket

socket://Hostname/Port

socket://fs2000:9100

 

socket://IP-Adresse/Port

socket://192.168.0.53:9100

Netzwerk IPP

ipp://Hostname:631

ipp://fs2000:631

 

ipp://IP-Adresse:631

ipp://192.168.0.53:631

Drucker anlegen

Um den im Beispiel verwendeten Netzwerkdrucker Kyocera FS-2000 über seinen Hostnamen ansprechen zu können, ergänzen wir die Datei /etc/hosts um den Eintrag 192.168.0.53 fs2000. Alternativ könnte man den Adresseintrag auch einem lokalen Nameserver übergeben. Zum Einrichten des Druckers nutzen Sie das Kommando lpadmin. Dessen für die Praxis wichtigsten Optionen finden Sie in der gleichnamigen Tabelle.

Lpadmin

Schalter

Aktion

-p Name

Druckername angeben

-D "Beschreibung"

Beschreibung des Druckers angeben

-E

Drucker oder Klasse aktivieren

-v URL

Geräte-URL angeben

-P /Pfad/Drucker.ppd

PPD-Datei angeben

-c Klasse

Drucker einer Klasse hinzufügen

-x Drucker

Drucker löschen

-o Option

weitere Optionen

-u allow:Nutzer,Nutzer,@Gruppe

Benutzerzugriff erlauben

-u deny:Nutzer,Nutzer,@Gruppe

Benutzerzugriff verbieten

-u allow:all

Benutzerzugriffsteuerung abschalten

Im Beispiel aus Listing 2 geben Sie mit der Option -p den Namen des Druckers an. Dafür sollten Sie eine kurze und einprägsame Bezeichnung wählen. Mit dem Schalter -D legen Sie die Beschreibung fest, am besten in Form einer vollständige Angabe des Druckermodells. Für die Angabe des Druckerstandorts verwenden Sie -L, die Geräte-URL übergeben Sie mit der Option -v. Die Angabe der PPD-Datei muss mit der kompletten Pfadangabe nach -P erfolgen – PPD-Dateien lagern üblicherweise unter /etc/cups/ppd/. Ordnen Sie den Drucker mithilfe von -c in eine noch nicht existierende Klasse ein, legt Cups diese automatisch an.

Listing 2

 

# lpadmin -p Druckername/Warteschlange \
          -D "Beschreibung" \
          -L "Aufstellungsort" \
          -v Gerate-URL \
          -P /Pfad/zur/PPD-Datei/PPD-Datei \
          -E
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland