
Hi Andre, From: "Andre Tann" <atann@alphasrv.net>
ich hätte da eine Verständnisfrage zu Samba:
Es geht um folgende Freigabe:
comment = PDF creator path = /var/pdf-spool/pdf-output printable = Yes print command = /usr/local/bin/printpdf %s
meines Wissens darfst Du die Variable nicht im Pfad verwenden, sondern solltest sie an Dein Script übergeben. Meine Freigabe sieht so aus: [pdfprinter] comment = PDF-Server printable = yes print command = ( /script/ps2pdf.sh %I %s %U %m) & path = /var/spool/pdfserver
Was macht denn Samba mit dieser Freigabe? Nach meinem Verständnis sollte ein PS-File (oder was auch immer der Windows-Druckertreiber anliefert) in folgende Datei schreiben: /var/pdf-spool/pdf-output/%s, wobei %s irgendein von Samba gewähltes Spoolfile ist.
Ich beobachte nun zwar, daß in dem pdf-output-Verzeichnis ganz kurz eine Datei namens smbprn... entsteht, aber die ist sofort wieder weg.
/usr/local/bin/printpdf hat nur folgenden Inhalt:
echo $1 > /tmp/dateiname D.h. also erstens, daß die temporäre Druckdatei nicht von meinem Skript printpdf gelöscht wird. Und zweitens entsteht /tmp/dateiname gar nicht erst, was bedeutet, daß mein Skript überhaupt nicht ausgeführt wird.
Ich denke, Dein Script wird ausgeführt, aber Du übergibst ja keinen Parameter ($1 = leer), somit führt Dein Script keine Aktion aus. Ich habe das wie folgt gelöst: # Dateiname aus dem Postscriptfile ermitteln datei=`grep --text %%Title $2 | cut -b 10-512 | tr -d '\n' | tr -d '\r' | tr -d '\f'` # Benutzername aus dem Postscriptfile ermitteln benutzer=`grep --text %%For $2 | cut -b 8-512 | tr -d '\n' | tr -d '\r' | tr -d '\f'` # Testen ob der Dateiname gueltig ist touch "/home/$benutzer/pdfout/$datei.test" if cat "/home/$benutzer/pdfout/$datei.test" 1>/dev/null 2>/dev/null then rm "/home/$benutzer/pdfout/$datei.test" else datei=$2 fi # Logging #date > /tmp/smbpdf.$3-$2.log #echo "Benutzer: $3" >> /tmp/smbpdf.$3-$2.log #echo "Maschine: $4, IP $1" >> /tmp/smbpdf.$3-$2.log #echo "SMB File: $2" >> /tmp/smbpdf.$3-$2.log #echo "Dateiname: $datei" >> /tmp/smbpdf.$3-$2.log #echo "Benutzer: $benutzer" >> /tmp/smbpdf.$3-$2.log #echo >> /tmp/smbpdf.$3-$2.log #cp $2 /tmp/smbpdf.$3-$2.ps >> /tmp/smbpdf.$3-$2.log # Postscriptfile in PDF File umwandeln, evtl. mit Logging #ps2pdf $2 "/home/$benutzer/pdfout/$datei.pdf" >> /tmp/smbpdf.$3-$2.log #ps2pdf $2 "/home/$benutzer/pdfout/$datei.pdf" > "/home/$benutzer/pdfout/$datei.log" ps2pdf $2 "/home/$benutzer/pdfout/$datei.pdf" # Berechtigungen setzen chown $benutzer "/home/$benutzer/pdfout/$datei.pdf" chmod 600 "/home/$benutzer/pdfout/$datei.pdf" # SMB Printfile loeschen rm $2 Ich hoffe das hilft Dir etwas weiter. Daniel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org