Hier ein nützliches Codeschnipsel zum entsorgen alter Dateien. Anwendung kann so etwas z.B. bei alten Logfiles, Statistiken, Mitgliederdateien und dergl. finden.
Es empfiehlt sich den Code in eine Passwortgeschützte Administration einzubinden.
#!/usr/bin/perl
# Fehlermeldungen an Browser ausgeben
use CGI::Carp qw(fatalsToBrowser);
# Verzeichnispfad anpassen
# Den Pfad sollte man aber zweimal prüfen vor dem Einsatz
# Ein vorbeugendes Backup kann auch nicht schaden!
my $verzeichnis = "/pfad/zum/verzeichnis";
# Alter der Dateien in Sekunden angeben
# Hier zum testen nur 20 Sekunden
my $alter = 20; # In Sekunden angeben!
# Hier wird das Verzeichnis geoeffnet
opendir(DIR, $verzeichnis) or die "Kann Verzeichnis nicht oeffnen: $!";
# Mittels einer while Schleife gelesen
while (my $entry = readdir(DIR)) {
$entry = $verzeichnis.'/'.$entry;
unless (-f $entry) { next; # Verzeichnisse ausschließen ./ und ../
}
# Dateistatistik mittels stat bestimmen
my @stat = stat($entry);
# JA/NEIN (True/False) Wert
$weg = 0;
if ((time - $stat[8]) > $alter) {
# Dateien loeschen per unlink
unlink($entry);
# Wurde etwas geloescht, Wert ist = 1
$weg = 1;
}
}
# Verzeichnis schliessen
closedir(DIR);
print "Content-type: text/html\n\n";
# Textausgabe des Loeschstatus, ist Wert 1 oder 0
if ($weg == 1){
print "Es wurden Dateien gelöscht die älter als $alter Sekunden waren.\n";
} else {
print "Es wurden keine Dateien gefunden die gelöscht werden müssen\n";
}
|