[PERL] File Handler et command system

Fermé
ranskas - 18 sept. 2007 à 15:21
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 18 sept. 2007 à 23:44
Bonjour,

Je souhaiterai utiliser des commandes systèmes avec PERL. J'utilise le descripteur de fichier de la facon suivante:
open(FH,"ssh user@serveur_distant |");

donc je lance un ssh en processus démon...

je voudrai par la suite:
1/ lancer des commandes sur le serveur serveur_distant
2/ récupérer les résultat de mon traitement et me déconnecter du serveur serveur_distant

lorsque je fais par ex:

#!/usr/bin/perl

if (open(FH,"ssh user@serveur_distant |")){
$command=`ls -lrt >toto.txt`;
}
close(FH);

le résultat de toto.txt est le "ls -lrt" de mon serveur local... alors que j'aurais voulu le résultat de mon "serveur_distant"...

comment rester sur le flux ssh ouvert et faire un traitement dessus?

Merci d'avance pour vos suggestions.
A voir également:

2 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
18 sept. 2007 à 15:31
en écrivant sur FH
print FH "ls -lrt >toto.txt"
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
18 sept. 2007 à 23:44
Salut,

pourquoi pas, tout simplement
lami20j@deb:~/trash$ ls res.txt
ls: res.txt: Aucun fichier ou répertoire de ce type
lami20j@deb:~/trash$ perl -e 'system("ssh lami\@10.0.0.2 ls -l > res.txt")'
lami@10.0.0.2's password:
lami20j@deb:~/trash$ ls -l res.txt
-rw-r--r-- 1 lami20j lami20j 5558 2007-09-18 23:28 res.txt

0