2010-07-27 3 views
1

Je suis nouveau sur PHP et j'ai un script perl qui fonctionne essentiellement dans les serveurs distants, un fichier journal et affiche certaines informations du fichier journal dans STDOUT. Je veux que cela soit maintenant visible en tant que page web, donc je regarde PHP pour afficher cette sortie. Je veux juste voir la même sortie que celle que je vois sur le terminal pour le moment. L'objectif serait alors d'améliorer le formatage/présentation de ces données.en utilisant PHP pour afficher la sortie d'un script perl

En outre, toutes les idées/exemples sur la meilleure approche pour formater la sortie via PHP serait grande. Merci!!

Voici le script perl: (exécuté en passant quelques arguments)

Usage: ./statsinfo.pl Jul 26 2010 /var/log/server.log server1 

my($mon,$day,$year,$file,$server) = @ARGV; 
my $regex_flag = 0;     
splice(@ARGV, 0, 4,());    
foreach my $server (@ARGV) {  
    print "===================================================================================\n"; 
    print "REPORTING SUMMARY for BACKUP SERVER : $server\n"; 
    open(my $fh,"ssh $server cat $file |") or die "can't open log $server:$file: $!\n"; 
    while (my $line = <$fh>) { 
     if ($line =~ m/.* $mon $day \d{2}:\d{2}:\d{2} $year:.*(ERROR:|backup-date=|backup-size=|backup-time=|backup-status)/) { 
      print $line; 
      $regex_flag=1; 
     } 
    } #end while loop 
     if ($regex_flag==0) { 
      print "NOTHING TO REPORT FOR $server: $mon $day $year \n"; 
     } 
    $regex_flag=0; 
    close($fh); 
} 
+3

Il est parfaitement possible de créer des sites Web basés sur Perl, vous le savez aussi! Découvrez HTML :: Mason http://www.masonhq.com/ – JAL

Répondre

3

utilisation: exec ("votre commande (exécution du script perl)", sortie $);

Les données écrites dans stdout doivent être dans la variable de sortie $. Rappelez-vous que le serveur http attend cette commande jusqu'à la fin de votre script, alors soyez attentif à l'attente depuis l'entrée au clavier, etc.

+0

Merci @killer_PL. Suis-je mieux alors de convertir ce script perl en php alors? – jdamae

+0

Si votre script s'exécute rapidement, vous n'êtes pas obligé de le faire. Dans les petits problèmes et les outils pour votre utilisation c'est ok. Mais dans les solutions plus grandes, c'est plutôt bon de le faire en PHP, surtout que ce script est simple. À votre place, je réécrirais ceci seulement si php n'autorise pas la commande exec sur votre serveur. –

+0

@ jaedre619: Vous n'avez pas besoin de convertir le script Perl en PHP si le script fonctionne correctement. Il suffit de l'utiliser à partir de PHP comme Killer_PL suggéré. – jmz

2

Juste pour montrer la sortie, il n'y a pas vraiment besoin de PHP ici. Redirigez la sortie Perl vers un fichier que le serveur Web peut traiter de manière statique et accédez-y avec un navigateur.

+0

Où devrais-je mettre le fichier statique? Si son un fichier texte peut-il être lu en tant que tel ou doit-il être appelé dans un autre script php? Merci – jdamae

+0

Ou simplement appeler le script perl directement à partir du serveur web – Ether

+0

Le fichier statique, la sortie du script Perl, doit être stocké dans un emplacement pouvant être servi par le serveur Web. – Kwebble

Questions connexes