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

Status
Für weitere Antworten geschlossen.

jochen.gajda

Benutzer
Registriert
12. Nov. 2020
Beiträge
4
Reaktionspunkte
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
 
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.
 
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
 
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.
 
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:
Status
Für weitere Antworten geschlossen.
 

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