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