Linuxでtmuxセッションの完全なコンソールログを取得するには?

Linuxでtmuxセッションの完全なコンソールログを取得するには?

.pyファイルを実行しているtmuxセッションを持つGoogle CloudにLinux VMがあり、コンソールログを取得しようとしていますが、上にスクロールしたり何もできません。

どんなアイデアがありますか?

これは私のコンソールです。

ベストアンサー1

スクロールする方法については言及していません。ターミナルウィンドウ自体をスクロールしようとすると、Tmuxはフルスクリーンアプリケーションなので動作しません。これはスクロールvim(または他のエディタ)を試しているのと同じです。

しかし、いくつかのオプションがあります。

Tmuxコピーモード

Tmuxのロールバックメカニズム(コピーモードと呼ばれる)を有効にするための主キーバインディングはPrefix(通常Ctrl+ B)で、その後に続きます[。次に、矢印キーをスクロールします。

フルバッファ保存

(少なくとも)2つの方法のうちの1つで、バッファ全体をファイルとして取得することもできます。最初にメッセージが表示されたら、次のことができます。

tmux capture-pane -pS - > ~/tmux-buffer.txt

しかし、Pythonプログラミングが実行中であると述べたので、次のことを行う必要があります。

  • 次のコマンドを使用してTmuxコマンドプロンプトにアクセスします。Prefix:
  • 次のコマンドを使用してウィンドウをバッファに保存します。
    capture-pane -S -
    
  • Tmuxプロンプトにもう一度アクセスしてください(Prefix:)。
  • バッファをファイルに保存する:
    save-buffer ~/tmux-buffer.txt
    

もう1つの方法は、前の2つのオプションを組み合わせて次のtmuxコマンドを実行することですrun-shell

  • 次のコマンドを使用してTmuxコマンドプロンプトにアクセスします。Prefix:
  • 次のコマンドで最初のTmuxコマンドを実行します。
    run-shell "tmux capture-pane -pS - > ~/tmux-buffer.txt"
    
バッファを別のポケットベルに送信する

コマンドラインから:

tmux capture-pane -pS - | less

Tmuxコマンドプロンプトから:

run-shell "tmux capture-pane -pS - | less"

より良いことは、エスケープコードを維持しながら他の形式と色を含めることができることです。

tmux capture-pane -epS - | less -r
ティー

tee最後に、この状況での有用性を忘れないでください。プログラムの出力をキャプチャすることを事前に知っている場合は、次のコマンドを使用してそれを画面とファイルに送信しますtee

python myprog.py 2>&1 | tee ~/myprog-out.txt

もちろん、これはstdoutandをキャプチャします。stderr

もちろん、以前のすべてのTmux治療と同様に、追加の事前計画は実際には必要ありません。

おすすめ記事