Hallo Debian User,
ich habe folgendes Problem: Auf dem Server habe ich zwei Verzeichnisse. Im Verzeichnis 1 landen immer wieder neue Textdateien mit Datensätzen im CSV Format. Diese Dateien möchte ich in Verzeichnis 2 kopieren und diese von dort aus dann mittels Script in eine Datenbank zu übertragen. Nachdem die Datei aus Verzeichnis 2 eingelesen wurde soll sie gelöscht werden, so das ich die Daten nicht doppelt einlese.
Das Problem ist... die Daten sollen in Verzeichnis 1 aber stehen bleiben. Daher fallen einfache Möglichkeiten wie cp oder mv aus, beim cp werden ja immer alle Daten wieder neu übertragen und bei mv verschwinden sie aus Verzeichnis 1.
Ich weiss nicht ob rsync da was bietet? Hat jemand eine Idee?
Dateien nur 1x kopieren
Re: Dateien nur 1x kopieren
Warum verwendest du ueberhaupt das Verzeichnis 2? Kannst du sie nicht auch direkt von Verzeichnis 1 einlesen?
Im Falle nur eines Verzeichnissen waere das gleiche Noetig wie in dem von dir skizzierten Szenarios: Ein Loggen welche Dateien schon uebertragen bzw. verarbeitet worden sind.
Besser faende ich es aber, du wuerdest versuchen, die verschiedenen Belange besser voneinander trennen. Statt diesem linearen Durchlauf, in dem Verzeichnisse Doppelfunktionen haben, solltest du die Funktionen separieren. Mein Vorschlag:
- Upload-Verzeichnis
- Import-Queue-Verzeichnis
- Archiv-Verzeichnis
Vom Upload-Verzeichnis kopierst du jede Datei sowohl in das Import-Verzeichnis als auch in das Archiv-Verzeichnis. Anschliessend kannst du sie aus dem Upload-Verzeichnis loesen. (Das bedeutet, dass das System sie angenommen hat.
Die Dateien im Import-Queue-Verzeichnis werden in die DB importiert und dann geloescht.
Das Archiv-Verzeichnis ist eine reine Ablage, die nur immer weiter waechst.
Also: Entweder du haelst den Zustand in Verzeichnissen, dann brauchst du fuer jede Funktion ein eigenes. Oder du haelst den Zustand mittels Programmlogik in einem Logfile, dann kannst du alles in einem einzigen Verzeichnis machen.
Im Falle nur eines Verzeichnissen waere das gleiche Noetig wie in dem von dir skizzierten Szenarios: Ein Loggen welche Dateien schon uebertragen bzw. verarbeitet worden sind.
Besser faende ich es aber, du wuerdest versuchen, die verschiedenen Belange besser voneinander trennen. Statt diesem linearen Durchlauf, in dem Verzeichnisse Doppelfunktionen haben, solltest du die Funktionen separieren. Mein Vorschlag:
- Upload-Verzeichnis
- Import-Queue-Verzeichnis
- Archiv-Verzeichnis
Vom Upload-Verzeichnis kopierst du jede Datei sowohl in das Import-Verzeichnis als auch in das Archiv-Verzeichnis. Anschliessend kannst du sie aus dem Upload-Verzeichnis loesen. (Das bedeutet, dass das System sie angenommen hat.
Die Dateien im Import-Queue-Verzeichnis werden in die DB importiert und dann geloescht.
Das Archiv-Verzeichnis ist eine reine Ablage, die nur immer weiter waechst.
Also: Entweder du haelst den Zustand in Verzeichnissen, dann brauchst du fuer jede Funktion ein eigenes. Oder du haelst den Zustand mittels Programmlogik in einem Logfile, dann kannst du alles in einem einzigen Verzeichnis machen.
Use ed once in a while!
Re: Dateien nur 1x kopieren
Ja ich glaube das Vorgehen ist sinnvoller. ICh habe es mal anders probiert... aber bringt nichts.