![Вопрос](https://rvso.com/image/89173/%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81.png)
Я установил службу Samba на свой raspberry pi 3
Linux: 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
В целях тестирования я дал этому скрипту 777
разрешениеsudo chmod 777 /usr/bin/printpdf
папка самба
mkdir -p ~/shr/pdfdropbox
chown root:root ~/shr/pdfdropbox
chmod u+rwx ~/shr/pdfdropbox
У службы samba есть пользователь и smbd
& nmbd
запущены. Я вижу службу samba на моем mac в sharing
и получаю доступ к папке общего доступа. Я вижу принтер в моих сетевых принтерах. Когда я печатаю документ через принтер samba, он показывает мне, что он подключается, отправляет данные и что данные принимаются без сбоев.
Но, /usr/bin/printpdf
похоже, не выполняется. В нем нет ничего, /home/pi/logs
кроме логов от самой samba (два лога, один с именем моего компьютера, другой с ip).
Когда я запускаю скрипт PDF вручную, создаются журналы.
PS: Я в основном придерживался этого урока: http://www.tldp.org/LDP/LG/issue72/bright.html
Вопрос
Почему скрипт не выполняется?
решение1
Я считаю, что в этой строке есть ошибка:
"hello" >> /home/pi/logs/2.log
Вы можете попробовать
echo "hello" >> /home/pi/logs/2.log
И вы цитируете $
s в остальной части скрипта. Я бы попробовал убрать \
s. И цитировать полные имена файлов.
В итоге получается:
echo "hello" >> /home/pi/logs/2.log
ps2pdf "$1" "$OUTDIR/$DATE.temp"
mv "$OUTDIR/$DATE.temp" "$OUTDIR/$DATE.pdf"
rm "$1"
во второй половине вашего сценария
решение2
Итак, я нашел несколько вещей. Сначала мне нужно было добавить, printing = BSD
может быть, иначе CUPS используется, которыйпереопределяетнастройки. Затем мне нужно было установить, printcap name = /dev/null
иначе файлы ghostscript исчезали до того, как я мог получить к ним доступ. Команды lpq
и lpr
не требовались.
[pdfCreatorLinux2]
# load printers = no
printcap name = /dev/null
path = /tmp/
printable = yes
printing = BSD
print command = /usr/bin/printpdf %s
# lpq command =
# lprm command =
Во-вторых, все скрипты и папки должны быть доступны пользователю сервиса Samba.
PS: Я также скорректировал скрипт PDF, но это не было причиной того, что он не был выполнен.
#!/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