auf alter 1 tage prüfen und löschen der dateien - sicher?
Alain
- perl
Hallo nochma,
so,zum löschen von dateien wollte ich noch was fragen und zwar,
naja ich habe ja einiges gefunden durch die suche mit google oder selfhtml und habe diese methode
my $tage = 1;
opendir (FILE, "$file_path")||die "can nicht oeffnen filedir $!";
for (readdir(FILE)){ #verzeichniss einlesen
if ((-f "$file_path/$_") and ((-M "$file_path/$_") > $tage)){ #wenn dateien vorhanden und älter als 1 tage
unlink ("$file_path/$_")|| die "can nicht loeschen karte $!"; #loesche dateien
}
}
closedir (FILE)|| die "can nicht close filedir $!";
gefunden,welche mir am einfachsten erscheint.
Meine frage dazu,kann da was schief gehen,betreff sicherheit?
Grüsse
Alain
hi Alain,
1 Tag sind 24 * 60 * 60 => 86.400
Das Alter einer Datei bekomst Du mit
$mtime = (stat($filename))[9];
bzw. mit der stat() Funktion i.A.
Die Funktion stat liefert dazu einiges:
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks)
= stat($filename);
0 dev device number of filesystem
1 ino inode number
2 mode file mode (type and permissions)
3 nlink number of (hard) links to the file
4 uid numeric user ID of file's owner
5 gid numeric group ID of file's owner
6 rdev the device identifier (special files only)
7 size total size of file, in bytes
8 atime last access time since the epoch
9 mtime last modify time since the epoch
10 ctime inode change time (NOT creation time!) since the
Gruss, Rolf
hi Rolf,
1 Tag sind 24 * 60 * 60 => 86.400
Das Alter einer Datei bekomst Du mit
$mtime = (stat($filename))[9];
bzw. mit der stat() Funktion i.A.
Die Funktion stat liefert dazu einiges:
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks)
= stat($filename);
»....
danke für die info,sowas hab ich ja bereits gefunden,aber ich möchte lediglich wissen ob meine art (oben) nicht (viel) einfacher ist und ob das sicher ist bzw. ob das auch alles korrekt ist?
Grüsse
Alain
P.S. Naja in 24h weiss ich ja mehr,obs überhaubt geht :)
hi Rolf nochma,
Die Funktion stat liefert dazu einiges:
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks)
= stat($filename);0 dev device number of filesystem
1 ino inode number
2 mode file mode (type and permissions)
3 nlink number of (hard) links to the file
4 uid numeric user ID of file's owner
5 gid numeric group ID of file's owner
6 rdev the device identifier (special files only)
7 size total size of file, in bytes
8 atime last access time since the epoch
9 mtime last modify time since the epoch
10 ctime inode change time (NOT creation time!) since the
ich habs mal so probiert,
opendir(DIR,"/home/www/");
my @eintrags = readdir(DIR);
closedir(DIR);
my $jetzt = time();
my $bis = $jetzt - 7200; #jetzt minus 2stunden(zahl in sekunden)
foreach (@eintrags) {
if ((-f $_) and ((stat($_))[9]) < $bis){ #wenn älter als 2 stunden
print "folgende daten $_ sind älter als 2 stunden\n";
#unlink ("$_"); oder lösche die alten daten
}
}
ist das so ok oder gehts einfacher?
Grüsse
Alain
P.S.lieber 2 stunden aktualisieren,weil 1 tag ist ja schon alt :)