Hallo Andimau,
anbei mal ein Script, das ein Arbeiten mit dem HotFolder skizziert. Der Scanner (hier: scanimage) schreibt dabei die pdf Datei in den Ordner "~/HotFolder", der durch inotifywait überwacht wird. Dieses Programm wird im Hintergrund gestartet, wenn es noch nicht läuft.
inotifywait muss zunächst installiert werden:
sudo apt-get install inotify-tools
Das bash-Script (scantest.sh) könnte z.B. wie folgt aussehen:
#!/bin/bash
# scanne mit Hilfe von scanimage mit 600dpi in Farbe vom Scanner mit der IP:192.168.146.95 in den ~/HotFolder
# zuvor wird inotifywait im Hintergrund gestartet, wenn es noch nicht läuft. Dieses überwacht ~/HotFolder auf
# die Events CLOSE_WRITE,CLOSE. Wenn dieser Event bei einer "pdf" Datei auftritt, wird mit ps2pdf die gescannte
# Datei in 150dpi gewandelt und in das Verzeichnis "~/Pdf150" geschrieben. Die inotify Events werden in dem
# Logfile "~/inotifywait.log" vermerkt.
HotFolder=$HOME/HotFolder
PdfFolder=$HOME/Pdf150
LogFile=$HOME/inotifywait.log
SCANNER_IP="192.168.146.95"
DPI="600"
ScanSize="A4"
COLOR="" # d.h. Color
FileName="SCAN-$DPI-$(date +%Y%m%d%H%M%S).pdf"
# Erzeuge die Verzeichnisse, falls noch nicht vorhanden
mkdir -p $HotFolder
mkdir -p $PdfFolder
# Starte den Wächster im Hintergrund für den HotFolder
ps | grep inotifywait >/dev/null
if [ $? -ne 0 ]; then (
inotifywait -m -e CLOSE_WRITE --format '%e: %f' $HotFolder |
while read line; do
echo $(date +%X) $line >>$LogFile
if [ "${line%:*}" == "CLOSE_WRITE,CLOSE" ]; then
fn=${line#*: }
if [ "${fn##*.}" == "pdf" ]; then
echo $(date +%X) "ps2pdf -dPDFSETTINGS=/ebook \"$HotFolder/$fn\" \"$PdfFolder/${fn/-*-/-150-}\"" >>$LogFile
ps2pdf -dPDFSETTINGS=/ebook "$HotFolder/$fn" "$PdfFolder/${fn/-*-/-150-}"
fi
fi
done) 2>> $LogFile &
fi
scanimage -d 'smfp:net;'$SCANNER_IP --resolution $DPI --page-format $ScanSize --format jpeg |
convert $COLOR - "$HotFolder/$FileName"
Hier ein Beispiel für den Script-Aufruf:
$ scantest.sh
$ ls -ogh HotFolder Pdf150
HotFolder:
insgesamt 5,0M
-rw-rw-r-- 1 5,0M Jun 28 23:58 SCAN-600-20220628235758.pdf
Pdf150:
insgesamt 216K
-rw-rw-r-- 1 215K Jun 28 23:58 SCAN-150-20220628235758.pdf
$ cat inotifywait.log
Setting up watches.
Watches established.
23:58:54 CLOSE_WRITE,CLOSE: SCAN-600-20220628235758.pdf
23:58:54 ps2pdf -dPDFSETTINGS=/ebook "/home/shiro/HotFolder/SCAN-600-20220628235758.pdf" "/home/shiro/Pdf150/SCAN-150-20220628235758.pdf"
23:58:55 CLOSE_WRITE,CLOSE: SCAN-600-20220628235758.pdf
23:58:55 ps2pdf -dPDFSETTINGS=/ebook "/home/shiro/HotFolder/SCAN-600-20220628235758.pdf" "/home/shiro/Pdf150/SCAN-150-20220628235758.pdf"
$
Das ist natürlich nur ein einfaches Beispiel, das du nach deinen Bedürfnissen anpassen solltest.