Estou gerenciando muitos sites drupal e tentando automatizar algumas coisas usando o drush. O drush run chama localmente o drush no host remoto via ssh usando as opções especificadas na configuração para o alias do site. Estou fazendo muitas dessas chamadas, para acelerar, uso conexões ssh persistentes com a configuração ssh da seguinte maneira:
Host *
# see http://www.revsys.com/writings/quicktips/ssh-faster-connections.html
ControlMaster auto
ControlPath ~/tmp/%r@%h:%p
ControlPersist 3600
Recebo uma aceleração, mas também recebo mensagens assim:
$ drush @alias drupal-directory webform
/var/local/www/example.com/htdocs/sites/all/modules/contrib/webform
Shared connection to 12.34.56.78 closed.
A mensagem sobre a conexão compartilhada está no stdout, junto com a saída que eu quero (sério? Por que não o stderr?); Portanto, está causando problemas quando tento capturar a saída nos meus scripts:
directory=$(drush @$alias drupal-directory $module)
Espero que a conexão principal seja aquela que eu já tinha aberto, e não parece que ela esteja fechada. Então talvez o drush esteja explicitamente fazendo dessa nova conexão uma conexão mestre e fechando-a? De qualquer forma, existe uma maneira de suprimir a mensagem sobre o fechamento da conexão?
[Esta questão está em um contexto drupal / drush, mas acho que é fundamentalmente sobre ssh. Este é o site certo, então?]
EDITAR:
Parece que o problema é específico de onde a -t
opção para ssh está em uso. Estou usando isso porque as senhas svn precisam ser inseridas em vários pontos e -t
, sem elas , as solicitações de senha não são exibidas. Talvez haja outra maneira de impedir que essas solicitações sejam perdidas?
directory=$(drush @$alias drupal-directory $module | grep -v "Shared connection to")
?