Ganz praktisch – ein neuer Drucker

Listing 1 zeigt ein Beispiel – es ist nicht nur der Übersichtlichkeit halber so einfach wie möglich gehalten: Obwohl sich das ältere lpq/lpr(-BSD)-Printsystem und das neuere lprng auf den ersten Blick nicht in ihren Printcaps unterscheiden, gibt es marginale Unterschiede. Die machen sich in der Durchschnittskonfiguration zwar nicht bemerkbar, im Fehlerfall ist es um ihre Existenz jedoch gut zu wissen. An dieser Stelle vermeiden wir derlei Spitzfindigkeiten lieber…

Leider lässt es sich nicht ganz vermeiden, dass Sie Listing 1 an Ihre Gegebenheiten anpassen (und wenn Sie mit weiteren Optionen experimentieren wollen – nur zu …).

Der dort beschriebene Drucker heißt remote oder hplj4p und ist mangels des Namens lp nicht der Standarddrucker.

Listing 1

Ausdrucken auf dem SMB-Drucker – die Printcap

remote|hplj4p:\
        :lp=/dev/null:\
        :sd=/var/spool/lpd/ljet4:\
        :sh:mx#0:\
        :if=/home/trish/bin/smbprint:

Als Nächstes gibt die Stringoption lp die lokale Gerätedatei an, über die der Drucker angesprochen werden soll. Da ist guter Rat teuer – denn der SMB-Drucker hängt ja nicht an unserem Rechner, sondern wird über Netzwerk um seine Dienste gebeten. Zudem läuft die gesamte Druckarbeit im smbprint-Skript aus Heft 06/2000 über den smbclient ab (Listing 2a). Kurzum: eigentlich können wir auf ein Gerät verzichten.

Wir zwar, nicht jedoch lpd, denn der muss die ihm anvertrauten Daten ja irgendwo abliefern, selbst wenn er sie einfach wegwerfen darf, da schon alles erledigt. Und wenn er schon entsorgen darf, dann soll er dazu doch einfach den virtuellen Papierkorb /dev/null benutzen.

Haben Sie das unter sd ("spool directory") angegebene Spoolverzeichnis (hier: /var/spool/lpd/ljet4) ggf. neu angelegt? Auf vielen Systemen ist ein Benutzer namens lp Herrscher über die Druckerschlangenverzeichnisse in /var/spool/lpd. Unterminieren Sie das Sicherheitsbewusstsein Ihrer Distribution nicht, und "verschenken" Sie das neue Spoolverzeichnis mit chown an den passenden User und seine Gruppe.

Als Beispiel für eine Boolsche Option haben wir "Suppress header", kurz sh, kurzerhand auf "Ja" gesetzt. Manche Drucker sind hardwareseitig so eingestellt, dass sie vor jedem Druckjob eine "Banner-Seite" ausdrucken – in Rechenzentren durchaus eine sinnvolle Option, will man dem bedruckten Papier nachher noch eine Eigentümerin zuordnen. In einer überschaubaren Umgebung ist das jedoch Papierverschwendung. Selbst wenn der Drucker eigentlich keine Banner-Seiten produziert, schadet es nicht, dies explizit in der Printcap zu verneinen.

Bei der numerischen Option mx ("maximum filesize") legen wir selbstbewusst fest, dass wir schon wissen, was wir ausdrücken wollen, und setzen den Wert auf 0 wie "unbegrenzt".

Noch mehr Gefilter

Das Wichtigste zum Schluss: if, das eigentliche Kernstück der ganzen Konfiguration. Im Fall unseres SMB-Druckers liegt auf seiner Schulter die volle Last von der Konvertierung bis zum Ausdruck selbst.

Listing 2a

Drucken von Hand – das Skript smbprint

#!/bin/sh
cat $* | /etc/magicfilter/ljet4l-filter | \
        smbclient \\\\server\\drucker \
        -W workgroup \
        -U "username%passwort" \
        -c 'translate; print -'

Mit dem Skript smbprint aus Heft 06/2000 (Listing 2a) haben wir schon die gröbste Vorarbeit geleistet, indem wir heraus gefunden haben, wie wir die Konvertierung ins Druckerformat hinbekommen (Stichwort: magicfilter), dafür sorgen, dass bei Textdateien keine Treppenstufen auftreten (smbclient-Befehl translate) und letztlich mit dem smbclient-Kommando print dem Drucker Arbeit verschaffen.

Was wir aus dem Skript nicht mehr brauchen, ist das cat, das erstmal die zu druckende Datei in die Filter-Pipeline schickte. Das erledigt jetzt lpd für uns: Der if-Filter bekommt die Daten auf der Standardeingabe angeliefert und soll nichts weiter tun, als sie aufzubereiten. Normalerweise gelangt die Ausgabe dieses Filters an die Gerätedatei. Da wir aber schon im "Filter" ausdrucken, werfen wir alles, was am Ende noch übrig bleibt, wie beschrieben nach /dev/null.

Listing 2b

Der Inputfilter smbprint

#!/bin/sh
logfile=/var/log/smb-print.log
/bin/date >> $logfile
/etc/magicfilter/ljet4l-filter \
|/usr/sbin/smbclient //server/drucker \
        -W workgroup \
        -U "username%passwort" \
        -c "translate; print -" >>$logfile

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Drucker-Konfiguration unter Linux
    Natürlich muss man auch unter Linux nicht auf einen Drucker verzichten. In diesem Artikel wird Ihnen erklärt wie Sie Ihren Drucker unter verschiedenen Distributionen einrichten und benutzen.
  • The Answer Girl
    Dass der Computeralltag auch unter Linux des Öfteren für Überraschungen gut ist, ist eher eine Binsenweisheit: Immer wieder funktionieren Dinge nicht oder nicht so, wie eigentlich angenommen. Das Answer-Girl im LinuxUser zeigt, wie man mit solchen Problemchen elegant fertig wird.
  • Der lange Weg der Druckdaten
    Welche Wege und Umwege nimmt eine Datei, bis ihr Inhalt farbig oder schwarz auf weiß zu Papier gelangt?
  • Printserver mit Samba
  • Netzwerk im Gleichschritt
    Zentrales Backup, gemeinsam genutzte Dateien und Drucker – es gibt viele Argumente für einen Samba-Server im lokalen Netzwerk. Wie schnell und einfach Sie diesen aufsetzen, zeigt dieser Artikel.
Kommentare

Infos zur Publikation

LU 11/2017: Server für Daheim

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 3 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...