나는 보통 이것을 tmux
한동안 실행될 작업을 시작하는 데 사용합니다. 주기적으로 돌아가서 확인해 보고 tmux -a
, 그래도 완료되지 않으면 연결을 끊었다가 나중에 다시 확인해 보세요.
세션을 완전히 연결하지 않고 세션에서 진행되고 있는 간단한 스냅샷만 볼 수 있는 방법이 있습니까? 나는 이론적으로 출력의 마지막 비트를 얻기 위해 세션에서 a를 실행하는 것과 같은 것을 찾고 있습니다. tail
그러나 출력 복사본으로 다른 파일을 생성하지 않는 것이 더 좋을 것입니다.
아마도 연결했다가 즉시 분리하는 것도 효과가 있을 것입니다. 키 입력을 저장하려고 합니다. 이러한 명령을 원격으로 실행할 수
있을까요 ssh root@server tmux --tail
?
답변1
나는 그것이 당신의 요구에 적합할 것이라고 생각합니다 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
그러나 다음 을 통해 이 명령을 실행하면멀티플렉서명령은 로컬 또는 원격 쉘에서 해석되어서는 안 됩니다.
답변2
설마. 제가 생각한 방법 중 하나는 장기 실행 프로세스( )를 시작한 후 $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)