exec (scp ) est ce possible?

funzyrip
Invité n'ayant pas de compte PHPfrance

24 janv. 2006, 18:34

bonjour à vous,

j'ai 2 problèmes :

1) je voudrai lancer une commande externe, la commande scp :
/usr/bin/scp -rp $fin[$i] [email protected]:/home/restore"

cette commande copie le fichier représenté par la valeur du tableau $fin[$i] vers un autre poste en réseau (je précise que je tourne sous linux et que lorsque je lance cette commande directement elle fonctionne)
voila le code que j'essai d'utiliser
for($i=0;$i<=$total;$i++) {
exec ("/usr/bin/scp -rp $fin[$i] [email protected]:/home/restore");
echo "<br /> $fin[$i]";}
j'ai aussi essayé en remplaçant la commande exec par shell_exec , system , passthru
sans succès... Il n'y a pas de message d'erreur, c'est juste que les fichiers ne sont pas copiés.
Je n'ai pas de grandes connaissances en php, copier des fichiers par scp via php est ce possible?? ou faut-il utiliser des commandes spéciales comme ssh2_connect et ssh2_scp_send (que j'ai essayé aussi mais sans doute mal écrites)???

2) je me suis enregistré, j'ai bien recu un mail de confirmation et j'ai été sur l'url d'activation mais je n'arrive pas à me connecter :
Vous avez spécifié un nom d'utilisateur incorrect ou inactif ou un mot de passe invalide
mais si je tente de poster dans le forum avec mon login :
Désolé, mais ce nom d'utilisateur est déjà pris.
voici mon login: funzy.rip
et mon mail : [email protected]

ce n'est peut etre pas la place de ce 2eme probleme dans le forum mais je ne savai pas ou le mettre...

merci d'avance

Mammouth du PHP | 1029 Messages

25 janv. 2006, 11:48

que donne
echo "<br /> $fin[$i]"
L'expérience est la somme de toutes nos erreurs.

funzyrip
Invité n'ayant pas de compte PHPfrance

25 janv. 2006, 12:34

 echo "<br /> $fin[$i]"; 
me donne le chemin des fichiers à copiés, par exemple:
/mnt/sauve/gds/backup/heure/08h--24-01-2006/timer

je cherche mais bon... j'ai vu qu'il y a avait aussi les commandes
#$connection = ssh2_connect('shell.example.com', 22);
#ssh2_auth_password
#ssh2_scp_send
qui pourraient me servir aussi... Mais je dois installer certains modules à php. Je suis cette explication http://php.rinet.ru/manual/fr/ref.ssh2.php
mais l'installation plante un peu de partout... Donc si je pouvai y arriver directement avec un shell_exec(scp) ca m'arrangerait bien :)[/php]

Mammouth du PHP | 1029 Messages

25 janv. 2006, 12:37

Cela te donne le chemin à copié ou le fichier à copier?
L'expérience est la somme de toutes nos erreurs.

funzyrip
Invité n'ayant pas de compte PHPfrance

25 janv. 2006, 13:00

je reprend l'exemple : ça me donne l'endroit ou se trouve le fichier timer
/mnt/sauve/gds/backup/heure/08h--24-01-2006/timer

comme ca y a le chemin pour y arriver et le nom du ficher à copié

Mammouth du PHP | 1029 Messages

25 janv. 2006, 14:07

et donc $fin est un tableau qui à déja lu le répertoire en question?
L'expérience est la somme de toutes nos erreurs.

Mammouth du PHP | 1029 Messages

25 janv. 2006, 14:36

Question as-tu régler les problèmes de password ssh entre les deux machines via des key-ssh?
L'expérience est la somme de toutes nos erreurs.

funzyrip
Invité n'ayant pas de compte PHPfrance

25 janv. 2006, 14:37

oui oui j'ai créé une clé et ca me permet de me connecter et copier des fichiers sans demande de mot de passe

Mammouth du PHP | 1029 Messages

25 janv. 2006, 15:07

Salut,

je viens de faire le test.
<?php
exec("/usr/bin/scp -rp /Dossier/xorg.conf [email protected]:/home/"); 
?>
Et effectivement si je fais fonctionner ce fichier en Cgi, il n'y a pas de problèmes, par contre en mode Web, ça passe pas, peut-être voir du côté du safe-mode.

Bonne chance
L'expérience est la somme de toutes nos erreurs.

funzyrip
Invité n'ayant pas de compte PHPfrance

25 janv. 2006, 16:33

en fait je n'ai pas du bien régler l'histoire de key_ssh

puisque si je lance apache, que je tente d'envoyer 3 fichiers par shell_exec(scp .. [email protected] )

le serveur affiche 3 fois ce message:

The authenticity of host '172.25.56.2 (172.25.56.2)' can't be established.
RSA key fingerprint is 70:97:fa:fa:e3:07:b6:7f:b6:90:ae:7d:eb:bf:2f:56.
Are you sure you want to continue connecting (yes/no)?


comment puis je régler cette histoire de key_ssh??
surtout que si je lance ssh 172.25.56.2 depuis mon terminal, la connection s'effectue sans problème puisque j'avais déja mis des clés ssh entre les postes! Faut-il faire autre chose pour un serveur apache?

Mammouth du PHP | 1029 Messages

25 janv. 2006, 16:40

Il te demande juste si tu es d'accord d'utiliser cette méthode à l'avenir, réponds yes la première fois, puis normalement ce sera bon.
L'expérience est la somme de toutes nos erreurs.

funzyrip
Invité n'ayant pas de compte PHPfrance

25 janv. 2006, 16:56

oui mais si je met yes ça fai ça (sur le serveur, pas sur la page) :
y
y
y
y
y
y
y
y
y
y
y
y
y
y
et du coup je l'arrète....
peut etre ca viendrai de la boucle for ou j'ai mis la commande :
<?php 
$fin=$_POST['tablo'];
$total=count($fin);
for($i=0;$i<=$total;$i++) {
shell_exec("/usr/bin/scp -rp $fin[$i] [email protected]:/home/restore");
echo "<br /> $fin[$i]";
}
echo "Restauration terminée!";
?>

Mammouth du PHP | 1029 Messages

25 janv. 2006, 17:07

oui esaye la première fois sans la boucle
L'expérience est la somme de toutes nos erreurs.

funzyrip
Invité n'ayant pas de compte PHPfrance

25 janv. 2006, 17:11

sans la boucle c'est la meme chose
défilé de y
y
y
y
du coup ca doit venir de la configuration d'apache et pas du php?[/code]