Script zum regelmäßigen erkennen neuer Dateien in einem Ordner mit Unterordnern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
flexone2018
Beiträge: 9
Registriert: 19.04.2018 21:14:35

Script zum regelmäßigen erkennen neuer Dateien in einem Ordner mit Unterordnern

Beitrag von flexone2018 » 17.03.2019 23:05:14

Hallo Freunde,

wie die Überschrit schon sagt bin ich dabei ein kleines sh Script zu schreiben was mir z.b. meinen Filme Ordner 1x in der Stunde überprüft ob neue Dateien dazugekommen sind und wenn da neue Dateien dazugekommen sind brauche ich den Pfad und Dateinamen als Variable zurück.

ist das möglich?


mir würden spontan zwei Ansätze einfallen:
1. das Script Prüft wie alt das Erstellungsdatum ist, dazu müsste vielleicht das letzte Prüfdatum in einer Tempdatei gespeichert werden,
wenn dann eine Datei neuer ist als das letzte Prüfdatum und Zeit, dann wird Dateiname und Pfad der neuen Datei in jeweils einer variable gespeichert

oder

2. den gesamten Inhalt in Textform vom Ordner Filme + Unterordner mit Pfad und Dateinamen in einer txt speichern und beim nächsten mal die Textdatei mit dem Aktuellen Inhalt abgleichen, wenn dann eine Datei neuer ist als das letzte Prüfdatum und Zeit, dann wird Dateiname und Pfad der neuen Datei in jeweils einer variable gespeichert

welche Methode wäre am sinnvollsten und hat jemand eine Idee wie ich das sinnvoll programmieren kann in *.sh. ich bin leider nicht so sehr gut im Programmieren verstehe aber viel und es wäre echt super wenn mir da jemand helfen kann.

danke schon mal

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Script zum regelmäßigen erkennen neuer Dateien in einem Ordner mit Unterordnern

Beitrag von eggy » 17.03.2019 23:17:43

Sollte mit "find" einfacher machbar sein.

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Script zum regelmäßigen erkennen neuer Dateien in einem Ordner mit Unterordnern

Beitrag von MartinV » 18.03.2019 00:24:19

Wirf mal einen Blick auf die Debianinotify-tools.
Damit kannst Du auf Ereignisse im Dateisystem warten.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Script zum regelmäßigen erkennen neuer Dateien in einem Ordner mit Unterordnern

Beitrag von ThorstenS » 18.03.2019 07:51:08

Ich mag noch incrontab aus Debianincron ins Rennen schicken, es folgen zwei lesenswerte Posts zum Thema:

flexone2018
Beiträge: 9
Registriert: 19.04.2018 21:14:35

Re: Script zum regelmäßigen erkennen neuer Dateien in einem Ordner mit Unterordnern

Beitrag von flexone2018 » 22.03.2019 21:51:02

hallo,

ich bin sehr begeistert von eurer Hilfe,vielen dank für die zahlreichen Antworten und Entschuldigung für meine späte Antwort.

nach einigem umschauen, habe ich einen guten Weg dank euch gefunden.
mein Befehl sieht nun etwa so aus

Code: Alles auswählen

inotifywait -m /home/flex/server/3TBall/server3TB/FILME -r --fromfile mp4 -e create
die Ausgabe ist schon sehr gut und mit der Option -d läuft das dann auch im Hintergrund.

Wenn eine neue mp4 Datei angelegt wird, wird auch eine *.part Datei mit angelegt diese wird mir auch mit ausgegeben, das konnte ich mit

Code: Alles auswählen

--excludei part
ausfiltern.

Code: Alles auswählen

inotifywait --excludei part -m /home/flex/server/3TBall/server3TB/FILME -r -e create
was aber wenn andere Endungen als Part Dateien angelegt werden die nicht "*.part" heißen sondern z.b. "*.tmp" oder so.
sinnvoller wäre hier eine direkte Filterung nach nur: mp4, avi, flv oder auch mp3, jpg usw.
wäre das möglich?



und dann kommt das interessante. wie kann ich die Ausgabe in z.b. zwei variablen packen
einmal der Pfad und einmal der Dateiname
die Ausgabe die zurzeit so aus

Code: Alles auswählen

"/home/flex/server/3TBall/server3TB/FILME/0 Serien/serie1/ CREATE Serienname.S01E01.Folgentitel.mp4"
sollte dann so sein:
var1:
in var1 sollte dann aber nicht "/home/flex/server/3TBall/server3TB/FILME/0 Serien/serie1/" stehen sondern z.b.: "//serverip/FILME/0 Serien/serie1/"
#"serverip" ist Fix im Netzwerk, der zugriff so, wie eine Zeile darüber funktioniert dann auch.
var1: /FILME/0 Serien/serie1/
var2: Serienname.S01E01.Folgentitel.mp4


der Hintergrund ist dann, hier eine Nachricht mittels "Telegram" App per BotFather an die Gruppe zu senden mit Pfad und Name des Titels.

keine sorge das ist mein internes Netzwerk wo nur Familienmitglieder drauf Zugriff haben und hier liegen auch nur legale Kopien.

ansonsten sieht die ganze Sache schon sehr gut aus.
vielen dank euch allen nochmal dafür

Antworten