![Frage](https://rvso.com/image/89173/Frage.png)
Ich habe einen Samba-Dienst auf meinem raspberry pi 3
Linux installiert: Jessie (Debian 8)
.
smb.conf
[global]
netbios name = medicalexporter
workgroup = WORKGROUP
public = yes
# Run a WINS server
wins support = yes
local master = yes
preferred master = yes
os level = 65
log level = 10
log file = /home/pi/logs/samba.log.%m
[SambaTest]
comment = Samba-Test-Freigabe
path = /home/pi/shares/test
read only = no
[pdfCreatorLinux]
path = /tmp
printable = yes
guest ok = yes
print command = /usr/bin/printpdf %s
lpq command =
lprm command =
/usr/bin/printpdf
#!/bin/sh
LOG_FILE=/home/pi/logs/pdf.log
exec 3>&1 1>>${LOG_FILE} 2>&1
DATE="date +%b%d-%H%M%S"
OUTDIR=/home/pi/shr/pdfdropbox
"hello" >> /home/pi/logs/2.log
ps2pdf $1 \$OUTDIR/\$DATE.temp
mv \$OUTDIR/\$DATE.temp \$OUTDIR/\$DATE.pdf
rm \$1
Zu Testzwecken habe ich diesem Skript die Berechtigung gegeben 777
mitsudo chmod 777 /usr/bin/printpdf
Samba-Ordner
mkdir -p ~/shr/pdfdropbox
chown root:root ~/shr/pdfdropbox
chmod u+rwx ~/shr/pdfdropbox
Der Samba-Dienst hat einen Benutzer und smbd
& nmbd
läuft. Ich kann den Samba-Dienst auf meinem Mac unter sehen sharing
und auf den Freigabeordner zugreifen. Ich sehe den Drucker unter meinen Netzwerkdruckern. Wenn ich ein Dokument über den Samba-Drucker drucke, zeigt er mir an, dass er eine Verbindung herstellt, die Daten sendet und dass die Daten ohne Fehler empfangen werden.
Aber es scheint nicht ausgeführt zu werden. Außer den Protokollen von Samba selbst (zwei Protokolle, eines mit dem Namen meines Computers und eines mit einer IP) /usr/bin/printpdf
ist nichts darin ./home/pi/logs
Wenn ich das PDF-Skript manuell starte, werden die Protokolle erstellt.
PS: Ich habe mich größtenteils an dieses Tutorial gehalten: http://www.tldp.org/LDP/LG/issue72/bright.html
Frage
Warum wird das Skript nicht ausgeführt?
Antwort1
Ich glaube, diese Zeile enthält einen Fehler:
"hello" >> /home/pi/logs/2.log
Vielleicht möchten Sie versuchen
echo "hello" >> /home/pi/logs/2.log
Und Sie setzen das $
s im Rest des Skripts in Anführungszeichen. Ich würde versuchen, das \
s zu entfernen. Und die vollständigen Dateinamen in Anführungszeichen setzen.
Abschließend:
echo "hello" >> /home/pi/logs/2.log
ps2pdf "$1" "$OUTDIR/$DATE.temp"
mv "$OUTDIR/$DATE.temp" "$OUTDIR/$DATE.pdf"
rm "$1"
in der zweiten Hälfte Ihres Skripts
Antwort2
Ich habe also mehrere Dinge gefunden. Zuerst musste ich hinzufügen, printing = BSD
dass sonst vielleicht CUPS verwendet wird, wasüberschreibtEinstellungen. Dann musste ich festlegen, printcap name = /dev/null
sonst verschwanden die Ghostscript-Dateien, bevor ich darauf zugreifen konnte. Die Befehle lpq
und lpr
waren nicht erforderlich.
[pdfCreatorLinux2]
# load printers = no
printcap name = /dev/null
path = /tmp/
printable = yes
printing = BSD
print command = /usr/bin/printpdf %s
# lpq command =
# lprm command =
Zweitens müssen alle Skripte und Ordner für den Benutzer des Samba-Dienstes zugänglich sein.
PS: Das PDF-Skript habe ich ebenfalls angepasst, dies war jedoch nicht der Grund, warum es nicht ausgeführt wurde.
#!/bin/sh
LOG_FILE=/home/pi/logs/pdf.log
exec 3>&1 1>${LOG_FILE} 2>>&1
DATE=$(date +"%m_%d_%Y")
OUTDIR="/home/pi/shr/pdfdropbox"
ps2pdf $1 "$OUTDIR/$DATE.temp"
mv $OUTDIR/$DATE.temp $OUTDIR/$DATE.pdf
rm $1