Biesterfeld: Dateien automatisch umbennen

Beitrag lesen

Hallo Vinzenz,

vielleicht habe ich mich nicht ganz klar ausgedrückt.

Daher brauch ich jetzt ne andere Lösung und dachte mir, die Dateinamen sobald sie auf dem Dateisystem liegen um die Endung zu beschneiden. Aber: Wie mach ich sowas sinnvoll?

ich habe folgende Vermutungen:

  • alle Dateien liegen im gleichen Verzeichnis (eventuell mit Unterverzeichnissen).

Jede hochgeladene Datei liegt in Ihrem eigenen Unterverzeichnis innerhalb des "Upload-Verzeichnisses", also in der Art:

/<upload>/<[0-9]{5}>/data.<endung>, das Download-Skript sucht aber nach /<upload>/<[0-9]{5}>/data

  • die Dateien haben "handelsübliche" Endungen, d.h. es ist eine bekannte Menge.

Wieso wäre das wichtig? Ich dachte da an einen einfachen Substring des Dateinamens bis zum letzten Punkt exklusive.

Ist ein Cron-Job für sowas das geeignete Mittel?

Wenn Du eine Minute Unerreichbarkeit akzeptieren kannst.

Eine Minute Unerreichbarkeit des Servers oder der Datei nach Upload? Falls du zweites meintest, wäre dies auch das Intervall welches du für den Cron-Job vorschlägst? Eine Minute?

Gibt es unter Linux Tools, denen man sowas beibringen kann?

Ja, mv (in Verbindung z.B. mit find)

Hmmm, schon klar ,-) Ich meinte auch nicht, ein 'tool' welches mir den Dateinamen umbenennt, sondern dachte da eher an sowas wie einen "Listener", dem ich sagen kann dass er ein bestimmtes Verzeichnis auf Änderungen überwachen soll und bei einer Änderung instantan ein von mir anzugebenes Skript/Einzeiler lostritt. Mir passt halt die Idee mit dem Cron-Job nicht: Entweder die Datei ist für X Minuten nicht erreichbar, oder der Cron-Job arbeitet alle 5 Sekunden obwohl nur einmal pro Woche ne Datei hochgeladen wird.

Gibt es irgendeine Möglichkeit den Apache zu veranlassen, nach jedem Upload ein Shell-Skript anzuwerfen?

Äh, das Uploadskript des CMS. Allerdings willst Du das nicht tun, weil Du bei Updates erneut patchen müsstest.

Schon klar, ich meinte daher auch konkret den Apache, ob der z.B. sowas wie einen Upload-Listener hat.

Natürlich könntest Du auch einen kleinen Prozess als Dämon im Hintergrund laufen lassen, der in einem von Dir vorgegebenem Intervall die betroffene Verzeichnishierarchie auf neue Dateien überprüft und diese dann entsprechend umbenennt, wieder ein Intervall schläft, ...

Was doch identisch mit einem Cron-Job wäre, oder nicht?

Ich frag mich halt z.B. wie ein grafischer Dateimanager wie Nautilus oder Konquerer das machen. Wenn ich an der Konsole z.B. eine Datei hinzufüge und im Dateimanager das Verzeichnis geöffnet habe, wird die Datei auch fast synchron in der GUI angezeigt. Läuft da auch ein Prozess des Dateimanagers der jede Sekunde den Inhalt des Verzeichnisses aktualisiert oder wird der Dateimanager vom Dateisystem irgedwie "informiert" dass etwas hinzugekommen ist?

Ich weiß ja nicht ob ich mich jetzt richtig ausgedrückt habe, aber hoffe dass es doch eine bessere Möglichkeit gibt als einen Cron-Job oder Dämon mit hysterischem Schlaf-Wach-Rythmus.

Beste Grüße
Biesterfeld

--
Art.1: Et es wie et es
Art.2: Et kütt wie et kütt
Art.3: Et hätt noch immer jot jejange
Das Kölsche Grundgesetz