添付せずにtmuxセッションで何が起こっているかを見ることができますか?


15

多くの場合tmux、しばらく実行されるタスクを開始するために使用します。定期的に戻って使用して確認しtmux -a、まだ完了していない場合は切断し、後でもう一度確認します。

完全にアタッチせずにセッションで何が起こっているかの簡単なスナップショットを表示する方法はありますか?tail出力の最後のビットを取得するために理論的にセッションで行うようなものを探しています(ただし、出力のコピーで別のファイルを作成することを避けることができれば、より良いです)

接続してすぐに切り離すこともできます。私は、おそらくそのようなコマンドをリモートで実行することができ、キーストロークを保存しようとしています
すなわちssh root@server tmux --tail

回答:


16

私はcapture-paneあなたのニーズに合うかもしれないと思う:

tmux capture-pane -pt "$target-pane"

(ペインを指定する方法については、manページの「target-pane」を参照してください)

デフォルトでは、そのコマンドは指定されたペインの現在の内容をダンプします。-Sand -Eオプション(開始行番号と終了行番号)を使用して行の範囲を指定できます。最初の行は0で、負の数はペインの「スクロールバック」履歴からの行を指します。したがって、追加-S -10すると、最新の10行の履歴に加えて、ペインの現在の内容が取得されます。

tmux capture-pane -pt "$target-pane" -S -10

この-pオプションは1.8で追加されました。以前のバージョンを実行している場合、代わりにこれを行うことができます:

tmux capture-pane -t "$target_pane" \; save-buffer - \; delete-buffer

ただしssh、リモートシェルは追加のレベルのシェル解釈を追加するため、このコマンドを介してこのコマンドを発行する場合はセミコロンに注意してください(セミコロンは引数として最終的なtmuxコマンドに渡す必要があります。シェル)。


1
あなたは本当にこのタグを所有しています...素晴らしい答えです(いつものように)。
jasonwryan

-eANSIエスケープ(色など)を追加することもできます。それは素敵なニーモニックになります-pet
空飛ぶ羊

1

あんまり。思い浮かぶアプローチの1つは、長時間実行されるプロセスを開始し($lrp)、その後、定期的に、再接続せずlist-windowsに、関連するセッションで実行することです。

ある時点で、$ lrpを含むtmuxウィンドウの名前がデフォルト(通常はシェル)に戻り、$ lrpが完了したことがわかります。

┌─[Veles ~]
└─╼ tmux list-windows -t 0
0: App1  (1 panes) [142x51] [layout b27d,142x51,0,0,0] @0
1: SSH  (1 panes) [142x51] [layout b27e,142x51,0,0,1] @1
2: IRC  (1 panes) [142x51] [layout b27f,142x51,0,0,2] @2
3: Shell- (1 panes) [142x51] [layout b280,142x51,0,0,3] @3
4: $lrp* (1 panes) [142x51] [layout b281,142x51,0,0,4] @4 (active)
┌─[Veles ~]
└─╼ tmux list-windows -t 0
0: App1  (1 panes) [142x51] [layout b27d,142x51,0,0,0] @0
1: SSH  (1 panes) [142x51] [layout b27e,142x51,0,0,1] @1
2: IRC  (1 panes) [142x51] [layout b27f,142x51,0,0,2] @2
3: Shell- (1 panes) [142x51] [layout b280,142x51,0,0,3] @3
4: bash* (1 panes) [142x51] [layout b281,142x51,0,0,4] @4 (active)

良いアイデア。私はまだ混乱して$lrpいます-それはあなたが言及した変数でしたか?それがどのように使用されるかの例を与えることができますか?見なかった$lrpに記載されているman tmux
CWD

@cwdそれはあなたのプロセスのプレースホルダーです(rsync
とにかく
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.