私は多くのdrupalサイトを管理していて、drushを使用していくつかのものを自動化しようとしています。Drush runは、サイトエイリアスの設定で指定されたオプションを使用して、ssh経由でリモートホストのdrushをローカルに呼び出します。私はこれらの呼び出しをかなり多くしているので、高速化するために、次のようにssh configで永続的なssh接続を使用します。
Host *
# see http://www.revsys.com/writings/quicktips/ssh-faster-connections.html
ControlMaster auto
ControlPath ~/tmp/%r@%h:%p
ControlPersist 3600
スピードアップしましたが、次のようなメッセージも表示されます。
$ drush @alias drupal-directory webform
/var/local/www/example.com/htdocs/sites/all/modules/contrib/webform
Shared connection to 12.34.56.78 closed.
共有接続に関するメッセージは、私が欲しい出力と一緒にstdoutにあります(真剣に?なぜstderrではないのですか?)。そのため、スクリプトで出力をキャプチャしようとすると問題が発生します。
directory=$(drush @$alias drupal-directory $module)
マスター接続は既に開いていたはずですが、閉じられているようには見えません。だから、おそらくdrushはこの新しい接続を明示的にマスター接続にして閉じていますか?いずれにせよ、接続の切断に関するメッセージを抑制する方法はありますか?
[この問題はdrupal / drushのコンテキストにありますが、基本的にはsshに関するものだと思います。これは正しいサイトですか?]
編集:
この問題は-t
、ssh のオプションが使用されている場所に固有のようです。svnパスワードはさまざまな時点で入力する必要があり-t
、パスワードプロンプトが表示されないため、これを使用しています。これらのプロンプトが失われるのを防ぐ別の方法があるのでしょうか?
directory=$(drush @$alias drupal-directory $module | grep -v "Shared connection to")
で十分でしょうか?