next up previous index
Next: printer admin S Up: Die Parameter Previous: printcap name G   Index


print command S

Nachdem ein Druckauftrag im Spooling-Directory angelegt wurde, wird dieser Parameter ausgewertet, um die Spool-Datei abzuarbeiten (zu drucken). Normalerweise wird der Parameter mit einem Kommando belegt, welches die Spool-Datei an das Drucker-Subsystem des Servers weiterleitet. Das kann natürlich auch der Server selbst sein; aber in etwas größeren Netzen werden solche Dienste ausgelagert, um den Server von Polling Requests zu entlasten (siehe Glossar Pollingpolling). Der Print-Server entfernt die gedruckte Datei nicht aus dem Spool-Directory. Daher sollte am besten ein Skript dafür sorgen, dass nach dem Drucken das Spool-Directory bereinigt wird.

Das Print-Kommando besteht aus einer einfachen Textzeile und wird auch textuell ausgewertet, dabei sind drei Makroexpansionen zugelassen:

Der Print-Befehl muss mindestens einmal das Makro %s oder %f enthalten, das Printer-Name-Makro kann optional angegeben werden.

Wenn dieser Parameter in der [global]-section verwendet wird, so wird der Print-Befehl für alle druckbaren Dienste verwendet, die keinen eigenen Print-Befehl verwenden.

Wenn weder für eine Share noch [global]-section ein Print-Kommando angegeben ist, so werden die Spool-Dateien zwar erzeugt, aber nicht abgearbeitet (gedruckt). Sie werden dann natürlich auch nicht aus dem Spool-Directory gelöscht.

Wenn der Parameter guest account der User nobody angegeben wurde, so kann unter Umständen das Drucken nicht funktionieren (siehe Seite [*]), weil manche Unix-Systeme dem User nobody eine bestimmte Semantik zuweisen. Für diesen Fall sollten Sie in der [global]-section einen Gast-Account einrichten, der drucken darf.

Man kann mit diesem Parameter sehr komplexe Druckbefehle realisieren, da die Belegung nur einer Shell zur Auswertung übergeben wird. Das Beispiel 1.13 erzeugt eine Log-Datei, druckt die Datei und entfernt die Datei, alles mit einem Skript. Dabei wird das ;-Zeichen als Zeilenseparator des Skript-Programms verwendet.


\begin{beispiel}{Eine Print-Command Shell}
\end{beispiel}

print command = echo Printing \%s » /tmp/print.log; \
lpr -P \%p \%s; \
rm \%s

Voreinstellungen:

printing= BSD, AIX, QNX, LPRNG oder PLP:
print command = lpr -r -P%p %s

Für printing= SYS oder HPUX :

print command = lp -c -d%p %s; rm %s

Für printing= SOFTQ :

print command = lp -d%p -s %s; rm %s

Beispiel:

print command = /usr/lib/samba/bin/myprintscript %p %s

Falls das Samba-Paket mit der Library libcups übersetzt worden ist, so kann der Parameter auch wie folgt belegt werden:

printcap = cups

Diese Option verwendet dann die CUPS API, um die Druck-Jobs abzuarbeiten. Fall der Parameter anders belegt wird, dann wird weiterhin die System V Methode verwendet mit der -oraw Option für's Drucken. Dann wird das folgende Druckerkommando ausgegeben:

lp -c -d%p -oraw; rm %s.

Mit der Belegung printing = cups und natürlich, wenn das Samba-Paket entsprechend übersetzt wurde, werden jede Art manueller Einstellungen des Print-Commands negiert.

Beispiel:

print command = /usr/local/samba/bin/myprintscript %p %s


next up previous index
Next: printer admin S Up: Die Parameter Previous: printcap name G   Index
millin Verlag