Bir tmux oturumunda ne yapmadan ona neler olduğunu görebilir miyim?


16

Genellikle tmuxbir süre çalışacak bir görev başlatmak için kullanacağım . Ben periyodik olarak geri gidip kullanarak kontrol tmux -ave sonra hala tamamlanmadıysa bağlantısını kes ve daha sonra tekrar kontrol.

Tam olarak takılmadan oturumda neler olup bittiğinin kısa bir görüntüsünü görmenin bir yolu var mı? Teorik olarak bir şey tailson oturum bit almak için oturumda yapıyor gibi bir şey arıyorum (ama daha iyi bir kopyasını çıktı ile başka bir dosya oluşturmaktan kaçınabilirsiniz daha iyi)

Belki takmak ve hemen ayırmak da işe yarardı. Tuş vuruşlarını kaydetmeye çalışıyorum, belki de böyle bir komut uzaktan çalıştırılabilir,
yani ssh root@server tmux --tail?

Yanıtlar:


17

Bence capture-paneihtiyaçlarınızı karşılayabilir:

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

(bölme belirtme yöntemleri için kılavuz sayfasındaki "hedef bölme" konusuna bakın)

Varsayılan olarak, bu komut belirtilen bölmenin geçerli içeriğini döker. -SVe -Eseçeneklerini (başlangıç ​​ve bitiş satır numaraları) kullanarak bir satır aralığı belirtebilirsiniz : ilk satır 0'dır ve negatif sayılar bölmenin "geri kaydır" geçmişindeki satırlara karşılık gelir. Yani ekleme -S -10size tarihinin en son on hatları artı bölmesinde geçerli içeriğini alır.

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

-pSeçeneği 1.8 eklenmiştir. Önceki bir sürümü çalıştırıyorsanız, bunun yerine bunu yapabilirsiniz:

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

Ancak ssh, uzak kabuk ek bir kabuk yorumlaması düzeyi ekleyeceği için bu komutu verirseniz bu noktalı virgüllere dikkat edin (noktalı virgüllerin son tmux komutuna bağımsız değişken olarak geçirilmesi gerekir, bunlar yerel veya uzak tarafından yorumlanmamalıdır. kabuk).


1
Bu etikete gerçekten sahipsiniz ... Harika yanıt (her zamanki gibi).
jasonwryan

Bir de -eANSI kaçışları (renk ve benzeri) için ekleyebilirsiniz . Bu güzel bir anımsatıcı yapar-pet
uçan koyun

1

Pek sayılmaz. Akla gelen bir yaklaşım, uzun süren sürecinizi ( $lrp) başlatmak ve daha sonra periyodik olarak, yeniden takmadan, list-windowsilgili oturum için koşmaktır.

Bir noktada, $ lrp ile tmux penceresinin adı varsayılana, genellikle kabuğunuza geri döner ve $ lrp'nin tamamlandığını görebilirsiniz.

┌─[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)

İyi bir fikir. Yine de kafam karıştı $lrp- bahsettiğiniz bir değişken miydi? nasıl kullanılacağına dair bir örnek verebilir misiniz? $lrplistelenen görmedimman tmux
cwd

@cwd Bu sadece işleminiz için bir yer tutucudur ( rsyncya da her neyse) ... :)
jasonwryan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.