Hallo,
als perlnewbie ist es mir schon mal gelungen nachfolgendes script
zu schreiben. (ermittelt belegten webspace und Anzahl der Dateien)
Nur die Anzahl der Dateien stimmt nicht, da . und .. auch
mitgezaehlt werden.
Hat jemand einen Ansatz wie ich die rausfiltern kann?
muesste ein if-Abfrage im Bereich von
use File::Find;
sein? richtig?
Vielen Dank fuer Tipps!
Gruesse
pehajo
--
#!/usr/local/bin/perl
print "Content-Type: text/html\n\n";
$summe_mb=0;
#--Pfad zum Startverzeichnis angeben
$pfad = "/usr/local/etc/httpd/htdocs";
opendir (FILES, "/usr/local/etc/httpd/htdocs");
@files = readdir(FILES);
@files = (sort(@files));
. und .. entfernen
shift(@files);
shift(@files);
closedir (FILES);
print qq|
<html><head><title></title></head><body>
<table border=1>
<tr>
<td>Ordner</td><td>Anzahl</td><td>kB</td><td>MB</td>
</tr>
|;
foreach $file (sort(@files))
{
$groesse_bytes=0;
$anzahl = 0;
$groesse_kilobytes=0;
$groesse_megabytes=0;
use File::Find;
&find ( sub { $groesse_bytes += -s }, "$pfad/$file");
&find ( sub { $anzahl += 1 }, "$pfad/$file");
$groesse_kilobytes = int ($groesse_bytes / 1024);
$groesse_megabytes = ($groesse_bytes / 1048576);
$groesse_megabytes = sprintf("%.2f",$groesse_megabytes);
$summe_mb = $summe_mb + $groesse_megabytes;
print qq|
<tr>
<td>$file</td> <td>$anzahl</td><td>$groesse_kilobytes</td><td>$groesse_megabytes</td>
</tr>
|;
}
print qq|
</table><BR>
Summe MB: $summe_mb<BR>
</body></html>
|;
exit;