DEV Community

panmanio
panmanio

Posted on • Originally published at burnicki.pl

2 2

Dump tmux pane history to a file

Consider you have executed a long lasting command that produced many lines of output; or that you were trying to reproduce a non-deterministic issue with your software that has finally reproduced, and you have hundreds of log lines to analyze. The problem is you forgot to redirect the output to a file 😒.

Your terminal can help to dump its buffer to a file. Alternatively you can select and copy all the lines manually but that is inconvenient and error prone. Another option is to take advantage of terminal multiplexer capabilities, in case you are using one.

With tmux you can save last N lines of current pane to a file with two consecutive commands:

:capture-pane -S -N
:save-buffer ~/filename
Enter fullscreen mode Exit fullscreen mode

Replace N with desired number, or capture whole pane history with :capture-pane -S -.
That can be reduced to a single command when you invoke the capture-pane from the command line, like this:

tmux capture-pane -pS -10000 > ./last-10000-lines.out
Enter fullscreen mode Exit fullscreen mode

Or this:

tmux capture-pane -pS - > ./pane-history
Enter fullscreen mode Exit fullscreen mode

Another advantage of using command-line version is that you can store it as a function or alias in your shell, like in bash:

alias tmux-save-pane='tmux capture-pane -pS -'
Enter fullscreen mode Exit fullscreen mode

Now the use is really simple:

tmux-save-pane > ~/tmux-pane-history
Enter fullscreen mode Exit fullscreen mode

That command has helped me in trouble many times, I hope you also find it useful. If you are not using a terminal multiplexer, I really advise to start using one. tmux is the multiplexer I use, but as a vim addict I can't live with the default C-b prefix. First thing to do in my .tmux.conf is to change the binding to C-a 😉.

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more