Verzeichnis überwachen und Skript starten sobald eine Datei im Verzeichnis hochgeladen/gespeichert wird

jochen.gajda

Benutzer
Mitglied seit
12. Nov 2020
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Ich möchte gerne ein Verzeichnis (in dem Fall: /volume1/Scan) überwachen. Hier werden idR PDFs hochgeladen.
Mein Ziel ist: Sollte in diesem Verzeichnis eine Datei vom Scanner hochgeladen werden, soll das von meiner DS220+ erkannt werden und Skript (/usr/syno/synoman/webman/3rdparty/synOCR/synOCR-start.sh) gestartet werden. Momentan starte ich das Skript alle 30min was jedoch für mich nicht wirklich effizient ist.

Es gibt hier einen ähnlichen Thread (Verzeichnis überwachen Upload und eine Benachrichtung erhalten) der jedoch eine eMail versendet - für meinen Fall aber mE zu komplex ist.

Wie kann ich so eine simple Überwachung aufsetzen?

Vielen Dank,
Jochen
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.541
Punkte für Reaktionen
1.385
Punkte
234
Es gibt meiner Meinung nach drei Möglichkeiten:
  1. Inotifywait (inotify-tools): Das habe ich auf einem Raspberry laufen, der das Spoolverzeichnis vom Druckdienst überwacht. Es klappt wunderbar. In der Sekunde, wo ein Druckjob ankommt, läuft das Script los. Auf der Synology habe ich diese Toolsammlung (inotify-tools) nicht gefunden, scheint also nicht Standard zu sein. Mir ist nicht bekannt, ob es dafür ein Paket im DSM gibt. Es gibt Wege auf dem NAS auch Konsolenprogramme nachzuinstallieren. Das habe ich nie gemacht, da müssen andere weiterhelfen.
  2. Man kann mit einem Script (kleiner Einzeiler) das betreffende Verzeichnis auf Inhalte prüfen. Wenn Inhalte festgestellt werden, kann man dann etwas auslösen (z.B. synOCR).
  3. Verkürze doch einfach den automatischen Start vom Script (synOCR-start.sh) von 30 auf 1 oder 5 Minuten. Das Script von Geimist prüft sowieso, ob es schon läuft und reguliert sich damit selber.
 

jochen.gajda

Benutzer
Mitglied seit
12. Nov 2020
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Vielen Dank! Zu Punkt 2. Wie würde das Skript als solches aussehen? Bzgl. Punkt 3. Diese Idee hatte ich zuerst auch, da jedoch auch ein Docker-Container-Aufruf damit verbunden ist, ist der CPU-Aufwand mE dafür zu hoch (daher wohl Punkt 2. effizienter).
Gruss
Jochen
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.541
Punkte für Reaktionen
1.385
Punkte
234
da jedoch auch ein Docker-Container-Aufruf damit verbunden ist, ist der CPU-Aufwand mE dafür zu hoch
Der Container wird meiner Meinung nach erst gestartet, wenn das Script Dateien entdeckt.
Poste dazu mal im Thread von synOCR. Der User Geimist kann da besser weiterhelfen.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.250
Punkte für Reaktionen
2.846
Punkte
423
Ist in deinem in #1 verlinkten Thread nicht schon fast alles drin?

Probier's mal damit:
Code:
for file in /<Suchpfad>/*.pdf; do
  if [ -f "${file}" ] ; then
    /usr/syno/synoman/webman/3rdparty/synOCR/synOCR-start.sh
    exit 0
  fi
done
Ich nehme mal an, dass das synOCR-start.sh Script alles abarbeitet was es findet und danach löscht oder umbenennt. Deshalb ist das "exit 0" drin, damit das Script nicht für jede Datei gestartet wird. "break" sollte da auch gehen.
 
Zuletzt bearbeitet:


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat