연결하지 않고 tmux 세션에서 진행중인 작업을 볼 수 있습니까?


16

종종 tmux한동안 실행되는 작업을 시작하는 데 사용 합니다. 주기적으로 돌아가서 사용하여 확인한 tmux -a다음 여전히 완료되지 않은 경우 연결을 끊고 나중에 다시 확인하십시오.

완전히 연결하지 않고 세션에서 진행중인 작업에 대한 간단한 스냅 샷을 볼 수있는 방법이 있습니까? 이론적으로 tail세션에서 출력의 마지막 비트를 얻기 위해 무언가를 찾고 있습니다 (그러나 출력 사본으로 다른 파일을 만드는 것을 피할 수 있다면 더 좋습니다)

어쩌면 부착하고 즉시 분리하는 것도 효과가 있습니다. 나는 키 입력, 아마도 이러한 명령을 원격으로 실행할 수있는 저장하려고 해요
ssh root@server tmux --tail?

답변:


17

나는 capture-pane당신의 필요에 맞는 것 같아요 :

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

창을 지정하는 방법은 매뉴얼 페이지의“target-pane”을 참조하십시오.

기본적으로이 명령은 지정된 창의 현재 내용을 덤프합니다. -S-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

실제로는 아닙니다. 떠오르는 한 가지 방법은 장기 실행 프로세스 ( $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또는 무엇이든) ... :)
jasonwryan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.