Homepage Inspire-world | Forum
CGI/Perl Workshops Dateien eines bestimmten Alters löschen

 Inhaltsverzeichnis/Codeschnipsel Übersichtsseite/Dateien eines bestimmten Alters löschen
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";
}


 Zum Inhaltsverzeichnis/Codeschnipsel Übersichtsseite/Dateien eines bestimmten Alters löschen
Autor: Helmut Walter Homepage Inspire-world Fragen, Anregungen und Hinweise bitte in das Forum

Valid HTML 4.0! Valid CSS!