Rechercher : dans
Par :

Script CGI en Perl avec rsh sous linux help !

Dernière réponse le 7 aoû 2008 à 11:13:06 clement., le 30 jun 2008 à 16:44:58 
 Signaler ce message aux modérateurs

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 !

Configuration: Windows XP
Firefox 3.0

Meilleures réponses pour « Script CGI en Perl avec rsh sous linux help ! » dans :
Changer le mot de passe via un script VoirChanger le mot de passe via un script passwd Traditionnellement avec la commande "passwd" et son option "--stdin", au travers d'un "tube" (pipe en anglais), ce qui donne la syntaxe suivante :echo -e "new_password\nnew_password" | (passwd --stdin...
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Introduction à la programmation des CGI VoirPrésentation de l'interface CGI Un script CGI (Common Gateway Interface, traduisez interface de passerelle commune) est un programme exécuté par le serveur web (on dit généralement « côté serveur »), permettant d'envoyer au navigateur de...
CGI - Réception et traitement des données VoirEnvoyer des données à un script CGI L'envoi de données à un script CGI se fait par l'intermédiaire d'un formulaire HTML. Les formulaires HTML se créent à l'aide de la balise contenant des boutons, des champs, des listes et/ou des cases à...
Perl - Caractéristiques du langage VoirFichier source, et interprétation Le fichier source d'un programme écrit en Perl est un simple fichier texte dont l'extension est par convention .pl. Ce fichier source doit être un fichier texte non formatté, c'est-à-dire un fichier texte dans sa...

1

clement., le 1 jui 2008 à 12:00:08

Personne n'a une idée ?

Répondre à clement.

2

dubcek, le 1 jui 2008 à 12:22:56

Quand tu fais
rsh nom_srv -l root date
il te demande le mot de passe ?

Répondre à dubcek

3

clement., le 1 jui 2008 à 14:45:48

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....

Répondre à clement.

4

dubcek, le 1 jui 2008 à 15:26:47

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 ?

Répondre à dubcek

5

clement., le 1 jui 2008 à 15:45:56

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...

Répondre à clement.

6

clement., le 1 jui 2008 à 16:33:15

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...

Répondre à clement.

7

dubcek, le 1 jui 2008 à 17:26:09

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 ?

Répondre à dubcek

8

clement., le 2 jui 2008 à 09:25:23

Bonjour,

Malheureusement ça ne crée pas de fichier dans /tmp/log1 ....

Répondre à clement.

9

dubcek, le 2 jui 2008 à 13:11:28

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

Répondre à dubcek

10

clement., le 2 jui 2008 à 17:09:44

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..

Répondre à clement.

11

dubcek, le 3 jui 2008 à 12:42:59

Essayer ça

open (FILE, "rsh ISHP20 date|");
 while (<FILE>){ print $_; }

Répondre à dubcek

12

clement., le 3 jui 2008 à 14:36:56

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 ?

Répondre à clement.

13

 clement., le 7 aoû 2008 à 11:13:06

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 !

Répondre à clement.