接続せずにtmuxセッションで何が起こっているのか確認できますか?

接続せずにtmuxセッションで何が起こっているのか確認できますか?

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

セッションを完全に接続せずにセッションで進行中の単純なスナップショットのみを表示する方法はありますか?私は理論的には、出力の最後のビットを取得するためにセッションでaを実行するようなものを探しています。tailしかし、出力コピーで別のファイルを生成しない方が良いでしょう。

おそらく接続してすぐに分離することも効果があるでしょう。キーストロークを保存しようとしています。これらのコマンドをリモートで実行できます
ssh root@server tmux --tail

答え1

私はそれがあなたのニーズに合うと思いますcapture-pane

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

(ウィンドウの指定方法はマニュアルページの「target-pane」を参照してください)

デフォルトでは、このコマンドは指定されたウィンドウの現在の内容をダンプします。-Sおよびオプション(開始行番号と終了行番号)を使用して行範囲を指定できます-E。最初の行はゼロで、負の数はウィンドウの「戻るスクロール」履歴の行を表します。したがって、追加すると、ウィンドウの-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ただし、次のコマンドでこのコマンドを実行すると、マルチプレクサコマンドはローカルシェルまたはリモートシェルで解釈されるべきではありません。

答え2

まさか。私が考えた方法の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)

関連情報