Je gère de nombreux sites Drupal et j'essaie d'automatiser certaines choses à l'aide de Drush. Drush exécuté localement appelle drush sur l'hôte distant via ssh à l'aide des options spécifiées dans la configuration de l'alias de site. Je fais beaucoup de ces appels, donc pour l'accélérer, j'utilise des connexions ssh persistantes avec ssh config comme ceci:
Host *
# see http://www.revsys.com/writings/quicktips/ssh-faster-connections.html
ControlMaster auto
ControlPath ~/tmp/%r@%h:%p
ControlPersist 3600
Je reçois une accélération, mais je reçois aussi des messages comme ça:
$ drush @alias drupal-directory webform
/var/local/www/example.com/htdocs/sites/all/modules/contrib/webform
Shared connection to 12.34.56.78 closed.
Le message sur la connexion partagée est sur stdout, avec la sortie que je veux (sérieusement? Pourquoi pas stderr?), Donc cela pose des problèmes lorsque j'essaie de capturer la sortie dans mes scripts:
directory=$(drush @$alias drupal-directory $module)
Je m'attends à ce que la connexion principale soit celle que j'avais déjà ouverte, et cela ne semble pas fermé. Alors peut-être que le drush fait explicitement de cette nouvelle connexion une connexion principale et la ferme? Dans tous les cas, existe-t-il un moyen de supprimer le message concernant la fermeture de la connexion?
[Ce problème est dans un contexte drupal / drush, mais je pense qu'il s'agit fondamentalement de ssh. Est-ce que c'est le bon site alors?]
ÉDITER:
Il semble que le problème soit spécifique à l'endroit où l' -t
option ssh est utilisée. J'utilise cela parce que les mots de passe svn doivent être entrés à différents points, et sans -t
, les invites de mot de passe ne s'affichent pas. Peut-être existe-t-il un autre moyen d'empêcher la perte de ces invites?
directory=$(drush @$alias drupal-directory $module | grep -v "Shared connection to")
suffirait?