Sendmail und Perl Module auf Mietservern

Vorbemerkung:

Diese Seite entstand 1999 im Rahmen des Perl-Stammtisches und beschreibt die Verwendung von Perl, um nützliche Informationen über seinen Mietserver zu erhalten.

Problem:

"Jetzt habe ich endlich einen Server gefunden, der Perl, ein cgi-bin Verzeichnis und vieleicht auch Sendmail unterstützt. Aber wo liegt Sendmail, und welche Perl Module sind installiert?"

Lösung

Wir verwenden folgendes kleine Perlprogramm

#!/usr/bin/perl -w

use strict;
use CGI qw/:standard/;
use File::Find;

# Gibt Pfad zu sendmail und Enviroment von perl aus

my @mail = split(/ /, `whereis sendmail`);

print header,
      start_html,
      h1('Sendmail'),
      ul(li([@mail])),
      br,
      h1("Perl Enviroment: $ENV{SERVER_NAME}"),
      p("Perl Version: $]"),
      p("CGI.pm Version: $CGI::VERSION"),
      p("Library Path(\@INC):"),
      ul(li([@INC])),
      p('Modules: ');
      
foreach my $dir (@INC) {
    my @mods;
    find(sub { push @mods, $File::Find::name if /\.pm$/ }, $dir);
    print ul(li($dir), ul(li([sort @mods])));
}

print end_html;
    

Diskussion

Das Programm ist eigentlich ganz einfach. Zuerst binden wir die benötigten Module ein, CGI (sollte bei jeder neueren Perl Distribution dabei sein), File::Find (ist in der Standard Distribution enthalten) und natürlich wie immer strict. Der Befehl `whereis sendmail` liefert einen String zurück, in dem alle Pfade aufgeführt sind die das Wort "sendmail" enthalten. Mit dem split Befehl trennen wir das ganze an den Leerzeichen auf. Dann geben wir den notwendigen HTTP Header, und eine Überschrift aus. Die gefundenen Sendmaileinträge werden in einer Liste dar gestellt. Jetzt kommt der Servername, die Perl Version und die Version des CGI Moduls. In @INC stehen die Pfade, in denen Perl nach installierten Module sucht. Jeden einzelnen Pfadeintrag verfüttern wir an das Modul File::Find, mit der Prämisse, nur nach Einträgen zu suchen, die auf .pm enden. Das Ergebnis steht dann in @mods, welches wir wieder als Liste ausgeben.

Viel Spaß beim experimentieren.

Literaturhinweise

Zurück zum Anfang von Tips und Tricks