Thread Backup von Dateien als Cronjob (6 answers)
Opened by cbxk1xg at 2008-11-07 15:44

cbxk1xg
 2008-11-07 15:44
#116059 #116059
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Hallo Freund der Sonne,

ich möchte mit einem Perl-Skript einen Cron-Job bauen, der Dateien nach Alter verschiebt und auch andere sogar löscht. Es ist allerdings ausdrücklich gewünscht, dass nicht das Dateialter sondern ein Timestamp aus dem Namen der Datei dafür benutzt wird. Mit -M wäre es zwar einfacher, aber was soll's.

Ich habe hunderte Dateien nach folgendem Schema: "20081201BlaFasel.xyz". Diese Dateinamen wollte ich nun in einer Schleife zerlegen um den Timestamp zu extrahieren:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
use strict; # wie immer
use warnings; # wie immer

for my $file (@Files)
{
my $TimeStampFromFile   = substr($file,0,8);
my $YearFromFile        = substr($file,0,4);
my $MonthFromFile       = substr($file,3,2);
my $DayFromFile         = substr($file,5,2);
}


Jetzt kann ich mit
Code (perl): (dl )
my $Today = strftime("%Y%m%d",localtime(time));
zwar das aktuelle Datum herausfinden, aber wie errechne ich die Differenz? Die Dateien sollen mindestens 30 Minuten alt sein, bevor sie verschoben werden oder vom vorherigen Tag sein (Datumsgrenze).

Die zu löschenden Dateien sollen alle mindestens älter als 90 Tage sein.

Das löschen (unlink) bekomme ich hin. Aber ich weiß nicht, wie ich die Differenz mit dem Timestamp errechnen kann.

View full thread Backup von Dateien als Cronjob