Posez votre question Signaler

Script CGI en Perl avec rsh sous linux help !

clement. 287Messages postés 24 septembre 2007Date d'inscription - Dernière réponse le 7 août 2008 à 11:13
Bonjour,
Je travaille avec un script CGI en langage Perl
Le but du jeu est de retranscrire des licences dans un tableau sous une page intranet.
J'ai 2 Pcs, l'un sous Linux (le mien) qui gere l'intranet. et le second qui est un serveur de licence sous Unix.
Nous avons changés de serveur intranet et donc le programme qui été en place a du migrer.
Note : Sur l'ancien intranet le programme CGI marche tres bien.
Et donc sur le nouveau cela ne marche pas malheureusement.
J'ai ceci :
use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use strict;
#
# *** Déclaration des variables local
#
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Sortie du test</title>\n";
print "</head><body>\n";
open (FILE, "rsh adresse_serveur /opt/lum/ls/os/hpux/bin/i4blt -s | awk -f licence_multi.awk |");
my @sortie = <FILE>;
close FILE;
my @f;
foreach my $f(@sortie)
{
my @g = split(' ',$f);
print <<EOF;
<div> </div>
<table align="center" width="80%" border="1" cellpadding="1" cellspacing="1">
<tr>
<th bgcolor="#CCCCCC" class="Style2 Style6" scope="col">Nom</th>
<th bgcolor="#CCCCCC" class="Style2" scope="col">Version</th>
<th bgcolor="#CCCCCC" class="Style2" scope="col">Type</th>
<th bgcolor="#CCCCCC" class="Style2" scope="col">Nombre total de licences</th>
<th bgcolor="#CCCCCC" class="Style2" scope="col">Nombre de Licences utilisées</th>
</tr>
<tr>
<td><div align="center" class="Style3">$g[0]</div></td>
<td><div align="center" class="Style3">$g[1]</div></td>
<td><div align="center" class="Style3">$g[2]</div></td>
<td><div align="center" class="Style3">$g[3]</div></td>
<td><div align="center" class="Style3">$g[4]</div></td>
</tr>
</table>
EOF
ce qui s'affiche en sortie est juste le haut du tableau avec "nom, version ..etc" mais pas ceux que je lui demande.
J'ai d'abord penser que la fonction rsh de marchait pas... mais en faisant :
rsh nom_srv -l root date
j'arrive a avoir la date sur le serveur... donc le fonction marche... alors pourquoi elle n'afficherait pas ce qui lui ai demandé ?
est ce qu'il y a une erreur dans le programme ?
En parlant d'erreur : J'ai une erreur dans le erreur.log : remsh : login incorrect.
Pourtant sur les 2 pcs se sont les même ( root + mdp)
les fichiers Hosts des deux machines sont bien renseignés...
j'avoue que je sèche bcp maintenant et que ca commence a me prendre la tête lol...
si quelqu'un a une idée je suis tout ouïe
Merci bcp !
Lire la suite 

Script CGI en Perl avec rsh sous linux help »

13 réponses
Réponse
+0
moins plus
personne n'a une idée ?
Ajouter un commentaire
Réponse
+0
moins plus
quand tu fais
rsh nom_srv -l root date
il te demande le mot de passe ?
Ajouter un commentaire
Réponse
+0
moins plus
salutation,

Quand je fais la commande il me sort direct la date. et c'est la bonne vu que je me suis logger avec une autre machine sur la machine distante et que j'ai demandé aussi la date et c'est la meme....
Ajouter un commentaire
Réponse
+0
moins plus
le rsh manuel est en root, est ce que le script tourne en root ?

peut être que
open (FILE, "rsh adresse_serveur \"/opt/lum/ls/os/hpux/bin/i4blt -s | awk -f licence_multi.awk \"|");

sachant que rsh n'est pas un vrai login, il trouve bien le fchier licence_multi.awk ?
Ajouter un commentaire
Réponse
+0
moins plus
quand je lance la ligne en commande
rsh adresse_serveur /opt/lum/ls/os/hpux/bin/i4blt -s | awk -f licence_multi.awk |

que ca soit sous windows en me connectant a mon serveur intranet avec putty ou bien directement sur le linux avec le terminal.. ca m'affiche le resultat souhaité...

J'ai testé la commande :
rsh adresse_serveur /opt/lum/ls/os/hpux/bin/i4blt -s | awk -f licence_multi.awk | or die " ca marche pas"

dans la page web et il m'affichait "ca ne marche pas"..
donc doit bien y avoir un souci avec cette fonction rsh sous perl...

J'ai fait un copier coller de open (FILE, "rsh adresse_serveur \"/opt/lum/ls/os/hpux/bin/i4blt -s | awk -f licence_multi.awk \"|");
dans mon script et....

la page web n'affiche rien lol c'est tout blanc.
avant ca affichais juste les noms des colonnes mais là en ayant evidemment remplacé l'adresse_serveur par son adresse ou par son nom ca fait plus rien...
Ajouter un commentaire
Réponse
+0
moins plus
meme avec ca le rsh ne marche pas ! snif


use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use strict;

#
# *** Déclaration des variables local
#
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Sortie du test</title>\n";
print "</head><body>\n";


open (FILE, "rsh ISHP20 /opt/lum/ls/os/hpux/bin/i4blt -s|awk -f licence_multi.awk |");
my @sortie = <FILE>;
close FILE;

print "Le resultat est $sortie[1]";

la page web affiche :" Le resultat est " mais pas la valeur du tableau...
Ajouter un commentaire
Réponse
+0
moins plus
avec le | à la fin, il attend une commande, essayer de le supprimer
est ce que

open (FILE, "rsh ISHP20 /opt/lum/ls/os/hpux/bin/i4blt -s|awk -f licence_multi.awk > /tmp/log1 ");
my @sortie = <FILE>;
close FILE;

crée un fichier ?
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Malheureusement ça ne crée pas de fichier dans /tmp/log1 ....
Ajouter un commentaire
Réponse
+0
moins plus
et
open (FILE, "rsh ISHP20 date > /tmp/log1 ");
attention, /tmp/log1 est sur le système local

open (FILE, 'rsh ISHP20 "date > /tmp/log1"');
/tmp/log1 est sur ISHP20
Ajouter un commentaire
Réponse
+0
moins plus
alors j'ai regarder sur l'ISHP20 s'il y avait le fichier /tmp/log1 a la raicine. et ya rien..
le repertoire /tmp existe ce qui est normal mais le log1 n'y est pas..
Ajouter un commentaire
Réponse
+0
moins plus
essayer ça
open (FILE, "rsh ISHP20 date|");
 while (<FILE>){ print $_; }
Ajouter un commentaire
Réponse
+0
moins plus
bonjour,
Ca change rien lol, mon chef a essayer de voir... il a pas compris donc il m'as demandé de voir si c'était possible de faire ce que je veux faire en C++ ou java ou autre ...
Est ce réalisable ?
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour a tous

et c'est reparti pour un petit tour avec un script CGI qui fait des siennes toujours avec un rsh a l'intérieur...

voila mon script :

use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use strict;

open(FILE, "rsh 192.168.11.20 /opt/msc/flexlm/bin/lmstat -a");
my @sortie = <FILE>;
close(FILE);
chomp(@sorite);

print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Sortie du test</title></head><body>\n";
print "<pre>\n";
print "@sortie";
print "</pre>\n";
print "</body></html>\n";

et l'erreur qui me sort dans le fichier error.log de httpd:

[error] [client ***] [Thu Aug 7 11:07:05 2008] script.cgi: readline() on closed filehandle FILE at /var/www/cgi-bin/script.cgi line 22.

si quelqu'un aurait la bonté d'ame de m'indiquer la marche a suivre... parce que là je vois plus trop quoi faire ...

merci d'avance !
Ajouter un commentaire
Ce document intitulé « Script CGI en Perl avec rsh sous linux help ! » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?