Dateien automatisch mit Zeitstempel versehen

Status
Für weitere Antworten geschlossen.

Ziemowit

Benutzer
Mitglied seit
22. Aug 2009
Beiträge
34
Punkte für Reaktionen
0
Punkte
0
Moin

Ich nutze einen Multifunktionsdrucker der gescannte Dateien auf Netzlaufwerken ablegen kann. Leider ist der Eingeschränkt was die Benennung der Dateien angeht, es sind keine Platzhalter möglich, stattdessen wird hinter den vorgegebenen Dateinamen grundsätzlich eine vierstellige Zahl gehängt, scan0001, scan0002, scan xxxx.

Ich möchte mein Büro möglichst papierlos machen und entsprechend Rechnungen und ähnlich unwichtiges einscannen und auf der Synology ablegen lassen. Ich würde gerne den/die Ordner in die der Scanner neue Dateien ablegt überwacht haben und sobald eine neue Datei auftaucht eine automatische Umbenennung vornehmen mit Datum bzw. allgemein Zeitstempel.

Kann jemand weiterhelfen?
 

XPectIT

Benutzer
Mitglied seit
09. Jan 2012
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
Was mir zu dem Thema einfällt - eine vollständige Lösung hab ich keine:
  • Um es automatisch zu machen, ist eine Verarbeitung auf der Diskstation am Sinnvollsten
  • Dem Scanner etwas anderes beizubringen wird schwierig, dort sind die Möglichkeiten meist sehr begrenzt

Wenn es möglich ist, dass z.B. der Scanner in bla/Verzeichnis/scans einscannt und du dann die Bilder aus /bla/Verzeichnis/sortiert rausholst, könnte folgendes funktionieren.
  • Scanner scannt ins Verzeichnis bla/eingescannt/
  • Skript/cronjob überwacht das Verzeichnis bla/eingescannt
  • Liegt in diesem Verzeichnis eine Datei, wird sie ins Verzeichnis ../sortiert verschoben und dabei umbenannt
Das Verschieben/Umbenennen ist kein Hexenwerk:
Rich (BBCode):
#!/bin/bash

# Variablendefinition
scandir="/bla/Verzeichnis/eingescannt"
sortdir="/blubb/Verzeichnis/sortiert"

# Abarbeiten der eingescannten Dateien mit Hilfe einer For-Schleife

for datei in "$scandir"/*.pdf ; do 
    mv "$datei" "$sortdir/$(date +%F_%T).pdf"
    sleep 1
done


Das Vorgehen beinhaltet verschiedene Annahmen:
  • In bla/eingescannt liegt niemals eine andere pdf-Datei als die eingescannten
  • Das einscannen neuer Dateien dauert mindestens solange wie das Verschieben
  • Eine gewisse Verzögerung (warten auf nächsten Skriptlauf) wird inkauf genommen

Fertige Programme oder Einstellungen um diese über das DSM zu starten wird es wohl nicht geben. Um es mit der DS zu machen, wird die Shell von nöten sein - ich lasse mich aber auch gerne korrigieren.
 

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
Vielleicht sollte man das aber sicherheitshalber mit "find -mmin +1" kombinieren, um sicherzustellen, dass die Datei wirklich nicht mehr in Verwendung ist.
 

Ziemowit

Benutzer
Mitglied seit
22. Aug 2009
Beiträge
34
Punkte für Reaktionen
0
Punkte
0
So wie on xpectit beschrieben kommt es dem schon nahe.
Wie funktioniert cronjob? Ich habe das noch nicht genutzt nur am Rande mal davon gelesen. So wie ich das verstanden habe läuft das dann in festen Zeit-Intervallen ab. Würde das NAS dabei regelmäßig die Platten hochfahren etc.?
Ich nutze derzeit eine fertige Lösung die per inotify-tools eine Veränderung im Verzeichnis feststellt und auslöst, dass die betroffenen Dateien in den synoindex aufgenommen werden. Das läuft dann ganz gezielt ab.

Kann das einer etwas erläutern?
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.635
Punkte für Reaktionen
2.041
Punkte
829
Der Cronjob würde die Platten aufwecken, anders kann es nicht gehen, wenn er im Verzeichnis auf der Platte nachsehen möchte.
 

Ziemowit

Benutzer
Mitglied seit
22. Aug 2009
Beiträge
34
Punkte für Reaktionen
0
Punkte
0
Wie unterscheidet sich inotify hiervon? Wäre das prinzipiell auch nutzbar? Soweit ich das beobachtet habe, werden die Platten nicht in regelmäßigen Abständen geweckt.
 

XPectIT

Benutzer
Mitglied seit
09. Jan 2012
Beiträge
31
Punkte für Reaktionen
0
Punkte
6
Vielleicht sollte man das aber sicherheitshalber mit "find -mmin +1" kombinieren, um sicherzustellen, dass die Datei wirklich nicht mehr in Verwendung ist.

Guter Punkt, sonst zieht das Skript die Datei weg bevor der Scanner zuende geschrieben hat. Dagegen kann man ggf. einfach das sleep vor den mv Befehl setzen.

ionotify sollte auch funktionieren - Ich habe mich aber noch nicht tiefer damit beschäftigt. Aber es reagiert ja auf alle Änderungen am überwachten inode, hier solltest du insbesondere darauf achten, die eingescannten Dateien NICHT in Unterverzeichnisse vom Überwachten zu verschieben! (Endlosschleifengefahr).

Vielleicht ist eine Kombination beider Ansätze besser. Erstmal mit inotify überwachen (sofern damit die Platten echt weiterschlafen) und wenn inotify anschlägt, ein Skript ähnlich dem oben anstoßen.
 
Zuletzt bearbeitet:

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
Unterstützen die Syno-Kernels denn überhaupt inotify?
 
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