Bonjour à tous,

J'aimerais savoir s'il vous plait comment on fait :
- premièrement un test pour savoir si l'action sous ssh ou scp a été réussi ou non
exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ssh('root@IP_SERVEUR',"chmod 777 /mon_repertoire");
je veux tester si chmod 777 a été attribuer sur le repertoire, si non mettre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$erreur = 'chmod failed';
Idem pour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
scp("$repertoire_source/$fichier","root\@IP_SERVEUR:$repertoire_dest/$fichier");
j'ai essayé avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
ssh('root@IP_SERVEUR',"chmod 777 /mon_repertoire") or $erreur = 'chmod failed';
 
scp("$repertoire_source/$fichier","root\@IP_SERVEUR:$repertoire_dest/$fichier") or $erreur = 'secure copy failed';
L'action copy et chmod 777 a été effectué mais $erreur contient 'secure copy failed' et 'chmod failed'. Donc, les commandes sont executées et que les messages correspondants ont été assignés à la variable $erreur.

J'ai essayé aussi avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
unless(scp("$repertoire_source/$fichier","root\@IP_SERVEUR:$repertoire_dest/$fichier")){
$erreur='secure copy failed';
}
Le résultat est le même.

- deuxièment, ssh et scp retourne t-il boolean genre TRUE si succès et FALSE si erreur ou bien 1 ou 0 ou bien autres choses

le code complet est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
#!/usr/bin/perl -w
 
use warnings;
use Net::SCP qw(scp iscp);
use Net::SSH qw(ssh issh);
 
  ssh('root@IP_SERVEUR',"chmod 777 /mon_repertoire");
  scp("$repertoire_source/$fichier","root\@IP_SERVEUR:$repertoire_dest/$fichier");
Merci