Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Dateien nach Erstellungsdatum kopieren

  1. #1
    Registrierter Benutzer
    Registriert seit
    Dec 2018
    Beiträge
    15

    Dateien nach Erstellungsdatum kopieren

    Hallo zusammen,
    jeden Tag werden auf einem Server viele Dateien erstellt, die folgenden Dateinamenaufbau haben:
    Name01_DyyyymmddThhMMss
    Also Name01_D20201107T205501 für die Datei, die jetzt erstellt wurde. Der Zeitstempel der Datei ist mit der Uhrzeit aus dem Datenamen identisch.
    Diese Dateien hole ich via FTP.
    Mein Problem besteht nun darin, dass um 19.00 Uhr der Tagesabschluss erfolgt. Also alle Dateien, die bis 19.00 Uhr erstellt wurden, werden verarbeitet.
    Code:
    TIMESTAMP=´ date +%Y%m%d`
    QUELLDATEI=Name01_D$TIMESTAMP*
    .
    .
    .
    mget $QUELLDATEI
    Damit hole ich alle Dateien vom aktuellen Tag.
    Nun könnte ich um 23.59 Uhr nochmal alle Dateien vom aktuellen Tag abziehen.
    Dann stehen alle Dateien in einem Verzeichnis. Um die Dateien, die nach 19.00 Uhr erstellt sind, müsste ich diese Dateien in anderes Verzeichnis kopieren.

    Wie kann ich Dateien anhand ihres Zeitstempels kopieren?
    Mit dieser Abfrage bekomme ich das Datum und die Uhrzeit heraus:
    Code:
     stat -c "Filename : %n
                      mtime : %y
                      " DATEINAME
    Das müsste jetzt so in ein Shellscript eingebaut werden, dass mit einer Schleife die Dateinamen aus dem (alten) Verzeichnis ausgelesen werden
    und wenn die Uhrzeit der Stunde >= 19 ist, dann wird diese Datei in ein "neues" Verzeichnis kopiert.

    Also ungefähr so (nur erstmal die Uhrzeit auslesen):
    Code:
    if
            test $(ls -l | grep DATEINAME | wc -l) != 0 # kleines L
    then
            for i in `ls`
            do
                    aStatus=stat -c "Filename : %n
                    mtime : %y
                    " $i 
                    echo $aStatus
            done
    else
            echo "Datei pruefen!"
    
    fi
    Aber da kommt nix raus dabei:
    Code:
    ./test_stat_datei.sh: line 13: -c: command not found
    Habe auch schon probiert, das Statement

    aStatus=stat -c "Filename : %n
    mtime : %y
    "
    in Hochkommas (') zu setzen, hilft nix.

    Danke

    Thomas

  2. #2
    Registrierter Benutzer
    Registriert seit
    Jul 2009
    Ort
    Meißen
    Beiträge
    323
    Guten Tag!

    Möglicherweise:
    Code:
    ...
                    aStatus=$(stat -c "Filename : %n
                    mtime : %y
                    " $i)
    ...
    Gruß, FM_81
    Ein Mann, der wollte fangen einen Barsch, das Wasser stand ihm bis zum Knie!
    (Du musst bis Frühjahr warten, da kommt Hochwasser, dann reimt es sich von selbst!)

  3. #3
    Registrierter Benutzer
    Registriert seit
    Dec 2018
    Beiträge
    15
    Hallo FM_81,
    vielen Dank für Deinen Input.
    Der Grundstein ist damit gelegt.
    Nun musste ich noch etwas Fleisch an den Knochen bringen, damit es funktioniert.
    Code:
    if
            test $(ls -l | grep DATEINAME | wc -l) != 0 # kleines L
    then
            for i in `ls`
            do
                    aStatus=$(stat --printf='%y\n' $i)
                    echo $aStatus
                    l1=${#aStatus}
                    echo ${aStatus:11:2}
                    zeit=${aStatus:11:2}
                    if
                            [ $zeit -ge 19 ]
                    then
                            echo Nach 19Uhr
                    fi
            done
    else
            echo "Datei pruefen!"
    
    fi
    Die Echos habe ich nur zur Kontrolle drin. Die können nach der fertigen Programmierung natürlich wieder raus.
    Jetzt bin ich erstmal soweit, dass ich die Dateien erkenne, deren 'mtime' um oder nach 19.00 Uhr liegt.
    Nochmals vielen Dank und schönen Sonntag und einen guten Start in die neu Woche.

    Thomas

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    die Lektüre von
    Code:
    man find
    sollte das wesentlich vereinfachen...
    Ich bin root - ich darf das.

  5. #5
    Registrierter Benutzer
    Registriert seit
    Aug 2007
    Ort
    Sauerland
    Beiträge
    1.685

Ähnliche Themen

  1. Nach dem Kopieren von tar.gz Dateien tauchen versteckte Dateien auf!?!
    Von pi-user im Forum Anwendungen Allgemein, Software
    Antworten: 5
    Letzter Beitrag: 29.05.17, 13:21
  2. Antworten: 2
    Letzter Beitrag: 28.11.11, 16:45
  3. Finden Datei nach exaktem Erstellungsdatum
    Von tschloss im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 13.10.08, 08:22
  4. Dateien kopieren
    Von ramon im Forum Anwendungen Allgemein, Software
    Antworten: 3
    Letzter Beitrag: 09.12.02, 00:03
  5. mit cpio nur Dateien kopieren nach Datum ab z.b. 1.6.2002! kann da jemand helfen ??
    Von Killerkuno im Forum System installieren und konfigurieren
    Antworten: 1
    Letzter Beitrag: 15.06.02, 09:51

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •