Script CGI en Perl avec rsh sous linux help !

Fermé
clement. Messages postés 289 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 3 septembre 2013 - 30 juin 2008 à 16:44
clement. Messages postés 289 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 3 septembre 2013 - 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 !
A voir également:

13 réponses

clement. Messages postés 289 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 3 septembre 2013 14
1 juil. 2008 à 12:00
personne n'a une idée ?
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
1 juil. 2008 à 12:22
quand tu fais
rsh nom_srv -l root date
il te demande le mot de passe ?
0
clement. Messages postés 289 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 3 septembre 2013 14
1 juil. 2008 à 14:45
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....
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
1 juil. 2008 à 15:26
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
clement. Messages postés 289 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 3 septembre 2013 14
1 juil. 2008 à 15:45
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...
0
clement. Messages postés 289 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 3 septembre 2013 14
1 juil. 2008 à 16:33
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...
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
1 juil. 2008 à 17:26
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 ?
0
clement. Messages postés 289 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 3 septembre 2013 14
2 juil. 2008 à 09:25
Bonjour,

Malheureusement ça ne crée pas de fichier dans /tmp/log1 ....
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
2 juil. 2008 à 13:11
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
0
clement. Messages postés 289 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 3 septembre 2013 14
2 juil. 2008 à 17:09
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..
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
3 juil. 2008 à 12:42
essayer ça
open (FILE, "rsh ISHP20 date|");
 while (<FILE>){ print $_; }
0
clement. Messages postés 289 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 3 septembre 2013 14
3 juil. 2008 à 14:36
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 ?
0
clement. Messages postés 289 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 3 septembre 2013 14
7 août 2008 à 11:13
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 !
0