Browse Source

Harmonisation pour la connexion ssh, plusieurs solutions :

* on peut simplement definir un host via la fichier de configuration .ssh/config (dans ce cas pas besoin de renseigner les autres champs)
* on peut renseigner toutes les infos : user / port / hostName et facultatif un chemin pour la cle SSH
svn/root/trunk
tofulm@gmail.com 2 years ago
parent
commit
2b821dee96
  1. 4
      README.md
  2. 2
      src/Command/SynchroBdd.php
  3. 15
      src/Command/SynchroFichiers.php

4
README.md

@ -71,8 +71,8 @@ Dans la version 0.2.3, `spip-cli` permet :
Fichier de configuration synchroSPIP.json
* Il y a 2 façons pour ouvrir une connexion ssh :
* via : user / hostName / port ex : `ssh toto@spip.net -p 1234`
* via: host (il faut l'avoir défini dans .ssh/config) ex: `ssh mon_host_spip`
* via : user / hostName / port ex : `ssh toto@spip.net -p 1234`, si chemin_cle est defini, on pourra choisir une cle ssh dans un dossier autre que .ssh
* via: host (il faut l'avoir défini dans .ssh/config) ex: `ssh mon_host_spip` dans ce cas, pas besoin de renseigner les autres champs dans config_ssh
* Il faut avoir une cle ssh
* Configuration pour le rsync : Chaque ligne représente : chemin local => chemin distant:
* le chemin local peut-être en relatif

2
src/Command/SynchroBdd.php

@ -132,7 +132,7 @@ class SynchroBdd extends Command
} else {
$SSH = "$ssh->user@$ssh->hostName";
if ($ssh->port) {
$SSH .= " -i ~/.ssh/$ssh->nom_cle -p $ssh->port";
$SSH .= " -i $ssh->chemin_cle -p $ssh->port";
}
}
$commande_ssh ="ssh $SSH 'mysqldump -u $serveur->user $passServeur --opt $serveur->bdd' |mysql -u $local->user $passLocal $local->bdd";

15
src/Command/SynchroFichiers.php

@ -77,8 +77,21 @@ class SynchroFichiers extends Command
if ($local and $distant) {
$io->text('');
$port = $config->port ? $config->port : 22;
if ($config->host) {
$SSH = $config->host;
} else {
$SSH = "$config->user@$config->hostName";
}
$cle_ssh= '';
$port = '';
if ($config->chemin_cle) {
if ($config->port) {
$port = "-p $config->port";
}
$cle_ssh = "-i $config->chemin_cle $port";
}
$args = $verbeux ? "-azv" : "-az";
$commande_rsync = "rsync -e 'ssh -i ~/.ssh/$config->nom_cle -p $port' $args --delete-after $config->user@$config->hostName:$distant $local";
$commande_rsync = "rsync -e 'ssh $cle_ssh' $args --delete-after $SSH:$distant $local";
if ($verbeux) {
$io->text('commande rsync :');
$io->text($commande_rsync);

Loading…
Cancel
Save