tmuxにGNU Screenの「log」コマンドと同等のコマンドはありますか?

tmuxにGNU Screenの「log」コマンドと同等のコマンドはありますか?

私は与えられた環境で変更を適用するときにセッションの出力をファイルに書き込むためにscreenの "log"コマンドをたくさん使います。 tmuxのマニュアルページを検索しましたが、そのエントリが見つかりませんでした。 tmuxに似た機能があるかどうかを知っている人はいますか?それともこれを行うには、独自のラッパースクリプトを作成する必要がありますか?

編集:「スクリプト」やその他のユーティリティを使用すると、セッションを録音できることがわかります。画面の機能を非常に便利にすることは、文字列エスケープを使用して各セッションを一意に識別するログファイル変数を定義する機能です。

たとえば、ホスト名が与えられると、新しい画面ウィンドウでそのホストに対してSSHを実行し、ウィンドウのタイトルをホスト名に設定するシェル機能があります。そのセッションのログを開始すると、ウィンドウのタイトルが前に付けられます。

この機能がtmuxにない場合は、記録したいセッションを「スクリプト」するために新しいシェル関数セットを作成する必要があります。あまり難しくありませんが、画面がすでに私の要件に完全に適していることを考慮すると、努力する価値はありません。

ベストアンサー1

私があなたの言葉を解読するかどうか見てみましょう画面正しい設定:

  • 後で開始されるログファイルの名前を設定するために、このようなものをlogfile "%t-screen.log"(おそらくファイル内で)使用できます。.screenrc
  • あなたはtitle <hostname>(Ca A)を使用します画面コマンドは新しいウィンドウのタイトルを設定するか、新しい画面セッションを
    開始します。screen -t <hostname> ssh0 <hostname>
  • Ca H(Ca:log)を使用してください。画面コマンドは、ロギングを構成ファイルに切り替えます。

その場合、ほぼ同じです(要求されます)。マルチプレクサ1.3+pipe-paneでは、シェルコマンドで#Wをpipe-pane使用できます。マルチプレクサ1.0+):

  • 設定ファイル(例.tmux.conf:)から:

    bind-key H pipe-pane -o "exec cat >>$HOME/'#W-tmux.log'"
    
  • (Cb、)を使用してtmux rename-window <hostname>既存のウィンドウの名前を変更するか、次のように
    新しいtmux new-window -n <hostname> 'ssh <hostname>'ウィンドウを起動します。マルチプレクサウィンドウまたは新しい
    スタートtmux new-session -n <hostname> 'ssh <hostname>'マルチプレクサ会議。
  • Cb H を使用してロギングを切り替えます。

ログが切り替えられたという通知はありませんが、必要に応じて通知を追加できます。

bind-key H pipe-pane -o "exec cat >>$HOME/'#W-tmux.log'" \; display-message 'Toggled logging to $HOME/#W-tmux.log'

.tmux.conf注:上記の行は、設定ファイル(または独自の)にあるように見えますsourceマルチプレクサバックスラッシュとセミコロンの両方を確認する必要があります。シェルで設定するには、tmux bind-key …この2つの文字を適切にエスケープするか、引用符で囲む必要があります。マルチプレクサ触れていない。単一のバインディングを使用している場合は、オン/オフ切り替えに関するさまざまなメッセージを表示する便利な方法はないようです(おそらくこれを使用して何かを操作できますが、if-shellおそらく見苦しいでしょう)。両方のバインディングが許可されている場合は、以下を試してください。

bind-key H pipe-pane "exec cat >>$HOME/'#W-tmux.log'" \; display-message 'Started logging to $HOME/#W-tmux.log'
bind-key h pipe-pane \; display-message 'Ended logging to $HOME/#W-tmux.log'

おすすめ記事