Sto gestendo molti siti di Drupal e sto cercando di automatizzare alcune cose usando Drush. Drush run localmente chiama drush sull'host remoto tramite ssh usando le opzioni specificate nella configurazione per l'alias del sito. Sto facendo un sacco di queste chiamate, quindi per accelerare uso connessioni ssh persistenti con config ssh in questo modo:
Host *
# see http://www.revsys.com/writings/quicktips/ssh-faster-connections.html
ControlMaster auto
ControlPath ~/tmp/%r@%h:%p
ControlPersist 3600
Ottengo un'accelerazione, ma ricevo anche messaggi in questo modo:
$ drush @alias drupal-directory webform
/var/local/www/example.com/htdocs/sites/all/modules/contrib/webform
Shared connection to 12.34.56.78 closed.
Il messaggio sulla connessione condivisa è su stdout, insieme all'output che voglio (sul serio? Perché non stderr?), Quindi sta causando problemi quando provo a catturare l'output nei miei script:
directory=$(drush @$alias drupal-directory $module)
Mi aspetto che la connessione principale sia quella che avevo già aperto, e non sembra chiusa. Quindi forse Drush sta esplicitamente rendendo questa nuova connessione una master e chiudendola? In ogni caso, c'è un modo per sopprimere il messaggio sulla chiusura della connessione?
[Questo problema è in un contesto drupal / drush, ma penso che si tratti fondamentalmente di ssh. È questo il sito giusto allora?]
MODIFICARE:
Sembra che il problema sia specifico di dove -t
è in uso l' opzione di ssh. Sto usando questo perché le password svn devono essere inserite in vari punti e senza -t
, i prompt delle password non vengono visualizzati. Forse c'è un altro modo per impedire la perdita di quei messaggi?
directory=$(drush @$alias drupal-directory $module | grep -v "Shared connection to")
sufficiente un brutto hack ?