Alain: auf alter 1 tage prüfen und löschen der dateien - sicher?

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

  1. 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

    --
    OpenForum - mein OpenSource-Project:
    http://www.rolfrost.de/openforum.txt
    Klein, stark, mächtig, riesig... einfach gut ;-)
    1. 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 :)

    2. 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 :)