여러 개의 명명된 세션이 있습니다 tmux
. 예를 들어:
$ tmux new -s mysession1
$ tmux new -s mysession2
~/.tmux.conf
세션 이름을 기반으로 디렉터리의 파일에 각 세션을 자동으로 기록하는 기능을 my에 추가하고 싶습니다 . 예를 들어 위에서 제공 하고 생성한 ~/mytmuxsessions/
시나리오에서는 터미널 창 명령(명령과 유사 )의 출력을 포함하는 다음 로그 파일을 생성합니다.mysession1
mysession2
script -f file.log
~/mytmuxsessions/mysession1.log
~/mytmuxsessions/mysession2.log
나는 그것을 조사해 보았고 이것을 발견했습니다 :
- tmux에 GNU Screen의 "log" 명령과 동등한 것이 있습니까?
- https://blog.sleeplessbeastie.eu/2019/10/28/how-to-store-the-contents-of-tmux-pane/
이러한 질문은 키를 명령에 바인딩하려고 시도하지만 자동으로 수행되기를 원합니다. 즉, ~/.tmux.conf
입력하고 잊어버릴 수 있는 것입니다. 예를 들어, 이 명령이 수행하는 작업은 로그 파일의 현재 출력을 모두 처리하는 것입니다.
capture-pane -b temp-capture-buffer -S - \; save-buffer -b temp-capture-buffer ~/tmux.log \; delete-buffer -b capture-buffer
하지만 내가 원하는 것은 내 세션 이름을 기반으로 터미널 출력을 로그 파일에 지속적으로 저장하는 명령에 넣을 수 있는 Linux script
명령과 비슷한 것 입니다.script -f mysession.log
~/.tmux.conf
답변1
을 사용하는 방법을 찾을 수 없습니다 .tmux.conf
. "동적"이란 귀하의 경우 세션 이름을 기반으로 함을 의미합니다.유닉스 타임스탬프나는. 하지만 기본 코드는 사용할 수 있습니다.tmux 로깅;나에게 맞는 것을 얻기 위해 소스 코드를 수정했습니다.
이 솔루션은 특정 세션의 모든 내용을 하나의 로그 파일에 저장하지 않습니다. 이는 가능하지만 해당 세션에 존재할 수 있는 다양한 창과 분할창을 결합하는 것은 어려울 수 있습니다. 그러나 이 솔루션은 세션의 각 창에 대한 로그 파일을 저장하므로 모든 입력 및 출력이 로그 파일에 포함됩니다. 언제든지 에서 파생할 수도 있고 tmux-plugins/tmux-login
, 함께 구성한 내용을 기반으로 자신만의 코드를 작성하고 원하는 것을 사용할 수도 있습니다.
긴 이야기 짧게
tmux-logging
git 저장소에서 설치합니다 tmux-plugins
.
filename_suffix
원하는 형식과 일치 하도록 변수 정의를 변경합니다 . 이 작업은 에서 수행되어야 합니다 /path/to/tmux-plugins/tmux-logging/scripts/variables.sh
.
다른 스크립트에 복사했습니다 toggle_logging.sh
. 호출했습니다 ~/.ensure_tmux_logging_on.sh
. 내 디렉토리에 있으므로 $HOME
향후 업데이트에서는 tmux
제거되지 않습니다. if is_logging
아무 작업도 수행하지 않도록(또는 메시지만 출력하도록) 스크립트를 변경하십시오 . 연관된 else
분기를 변경하지 않고 그대로 둡니다.
~/.ensure_tmux_logging_on.sh
.bash_profile
(또는 .bash_login
또는 .login
또는 .profile
비로그인 쉘에서 호출되고 있는지 확인하는 것) 에서 호출하십시오. tmux
항상 비로그인 셸을 열므로 .bashrc
이전 스크립트 중 하나에서 가져오지 않으면 작동하지 않습니다. 바라보다여기(1),여기 (2), 또는여기(3)- 세 가지 모두 동일한 질문에 대한 답변입니다. 자세한 내용을 알아보세요.
업데이트가 있으면 tmux-logging
동일한 방법을 사용해야 하므로 어딘가에 메모해 두십시오.
이 작업을 수행하는 방법을 찾으려고 노력 중이지만 .tmux.conf
액세스 가능한 변수에 설정된 것 같아서 세션 정보를 가져오는 데 문제가 있습니다.뒤쪽에 .tmux.conf
구매되었습니다.
자세한 내용은
내가 사용하는 것은Tmux 플러그인 관리자( tpm
) 설치 방법 은 tmux-logging
한번에 설치 한다는 뜻 입니다 tpm
. 다음은 tmux-logging
및의 추가 정보 파일에 설명된 작업을 수행하는 몇 가지 빠른 명령입니다 .tpm
tmux-logging
노트, 이미 가지고 있는 경우 tpm
다음 지침을 따르세요.읽어보기 tmux-logging
파일, 즉 행 추가
set -g @plugin 'tmux-plugins/tmux-logging'
귀하의 플러그인 목록에 ~/.tmux.conf
.
tpm
이 명령을 사용하여 (적어도 표준 설치의 경우)
$ test ! -d ~/.tmux/plugins/tpm && \
echo -e "\n\nYou don't have \`tpm', continue with the next commands\n" || \
echo -e "\n\n\
You have \`tpm'.
\033[0;31mPAY ATTENTION TO THIS MESSAGE\x21\033[0m
Follow the instructions at
'https://github.com/tmux-plugins/tmux-logging/'
then
\033[0;32mgo to the 'After getting tmux-logging' part of the answer\033[0m\n"
그렇지 않은 경우 tpm
실행하십시오.
#(prompt can be in tmux or not)
## It's best, but not necessary, to get in the directory where we'll be doing stuff.
bbd025@MACHINE $ cd
## check the existence of ~/.tmux/plugins/tpm directory,
##+ create it if it doesn't exist
bbd025@MACHINE $ test -d ~/.tmux/plugins/tpm || mkdir -p ~/.tmux/plugins/tpm
## clone in the tpm code
bbd025@MACHINE $ git clone https://github.com/tmux-plugins/tpm \
~/.tmux/plugins/tpm
## create ~/.tmux.conf if it doesn't exist
bbd025@MACHINE $ test -f ~/.tmux.conf || touch ~/.tmux.conf
## Add the lines to ~/.tmux.conf as directed by the READMEs. Note that
##+ that the lines with only a '.' allow for spacing between the end of
##+ anything currently in your ~/.tmux.conf and these lines
bbd025@MACHINE $ cat <<'EOF' | sed 's/^\.$//g;' >> ~/.tmux.conf
.
.
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# -v- OUR LOGGING PLUGIN -v-
set -g @plugin 'tmux-plugins/tmux-logging'
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'github_username/plugin_name#branch'
# set -g @plugin '[email protected]:user/plugin'
# set -g @plugin '[email protected]:user/plugin'
#Initialize TMUX plugin manager(keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
EOF
bbd025@MACHINE $
tmux-logging을 얻은 후
다른 방법을 사용하여 다른 콘텐츠를 설치하거나 구성하는 경우 를 사용해야 tmux-logging
합니다 ./my/path/to/tmux-logging/
~/.tmux/plugins/tmux-logging/
아직 시작하지 않았다면 tmux
세션 을 시작하세요.
$ tmux
하단에 녹색 배너 유형이 표시되어 해당 항목에 있음을 알려줍니다 tmux
. [Prefix]+ Shift+를 누릅니다 . ( + i라고도 하며 기본적으로 +를 먼저 누른 다음 +를 누릅니다 .)[Prefix]I
CtrlbShifti
다음 줄이 표시됩니다실제 터미널에서, 녹색 알림 표시줄 대신.
TMUX environment reloaded.
Done, press ENTER to continue.
~에 따르면ENTER
이제 편집해 보겠습니다 ~/.tmux/plugins/tmux-logging/scripts/variables.sh
.
원하는 출력 파일 이름에 가까운 것(OP)의 경우(그러나 새 창이나 창에서 호출할 때 덮어쓰거나 뒤섞이지 않습니다. 적어도 그럴 것이라고 생각합니다) 다음과 같이 변경하십시오. 선:
# General options
# Next, commented line has original variable
#replaced#filename_suffix="#{session_name}-#{window_index}-#{pane_index}-%Y%m%dT%H%M%S.log"
filename_suffix="#{session_name}-#{window_index}-#{pane_index}.log"
( 업데이트할 때 이 정보를 안전하게 유지하는 방법을 알아보려면 참고 [1]tmux
을 참조하세요 .)
-#{window_index}-#{pane_index}
세션에서 열린 적이 없는 경우 여러 창을 삭제할 수 있습니다. 그러면 OP에 필요한 것과 정확히 일치하는 로그 파일 이름이 제공됩니다. 여러 창으로 끝나는 경우 로깅이 어떻게 될지는 잘 모르겠지만 재정의하지 않으면 지저분해질 것이라고 생각합니다. 참고로, 표시되는 변수는 ~/.tmux/plugins/tmux-logging/scripts/shared.sh
.
default_logging_path
파일에서 몇 줄을 변경할 수도 있지만 이는 처리할 수 있는 ~/.tmux.conf
것이므로 엉망으로 만들지 않았습니다.
내가 하는 일 - 내 사용자 이름이 로그 파일의 일부가 되도록 하고, 완전히 고유하고 추적 가능한 타임스탬프를 원하며, 시간순으로 정렬되기를 원합니다. (그리고 내 파일이 한 줄에 80자를 초과하는 것을 좋아하지 않습니다. ) - 라인을 변경 중이므로
# General options
# -v- original before change by bballdave025 -v- , 2022-02-28
#filename_suffix=\
#"#{session_name}-#{window_index}-#{pane_index}-%Y%m%dT%H%M%S.log"
filename_suffix="bbd025-%s\
-#{session_name}-#{window_index}-#{pane_index}-%Y%m%dT%H%M%S%z.log"
tmux-
파일 이름 앞에 오는 내용을 원하지 않으면 variables.sh
파일을 다시 변경해야 합니다. 약간 다른 로깅 옵션에는 파일 이름 접두사가 다르기 때문에 내 컴퓨터에서는 이 작업을 수행하지 않지만 이 답변에서는 수행했습니다.
따라서 접두사가 필요하지 않으면 variables.sh
다음 줄로 변경하십시오.
# original commented out on the line below
#default_logging_filename="tmux-${filename_suffix}"
default_logging_filename="${filename_suffix}"
이제 필요한 것을 ~/.tmux.conf
. 다른 법적 경로는 여기에 배치할 수 있습니다. 화면 캡처 및/또는 로그 버퍼를 사용 tmux-logging
하고 로깅 옵션을 계속하면 화면 캡처 또는 버퍼가 포함된 전체 기록이 자동 시작 로그 파일과 동일한 디렉터리에 저장됩니다. 이 줄을 파일의 어디에 넣는지는 정확히 중요하지 않지만 ~/.tmux.conf
TMUX 플러그인 관리자가 마지막에 유지하라고 지시하는 마지막 줄까지 그대로 둡니다.
set -g @logging-path "$HOME/mytmuxsessions"
set -g @screen-capture-path "$HOME/mytmuxsessions"
set -g @save-complete-history-path "$HOME/mytmuxsessions"
다음으로 새 스크립트에 복사하여 해당 스크립트가 스크립트 (또는 비로그인 스크립트에서 호출되도록 결정된 모든 항목) toggle_logging.sh
에 포함되어 있는지 확인합니다 .~/.bash_profile
실제로 ~/.bashrc
내 ~/.bash_profile
코드에서 다음을 얻습니다.
# @file .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
다음과 같은 줄이 있으면 ~/.bashrc
주석 처리할 수 있습니다.
# If not running interactively, don't do anything
[[ "$-" != *i* ]] && return
도착하다
## If not running interactively, don't do anything
#[[ "$-" != *i* ]] && return
그렇지 않고 로그인 셸에서만 사용하도록 for 환경과 기능을 유지하려면 ~/.bashrc
끝에 넣을 줄을 추가하거나 비로그인 스크립트용으로 로드되는 파일을 추가하면 됩니다.~/.bashrc
~/.bash_login
마침내 우리는 그것을 얻었습니다 toggle_logging.sh
. 아래 제공된 복사 명령을 실행하십시오. 다시 한번 말하지만, 향후 업그레이드로 인해 파일이 삭제되지 않도록 파일을 홈 폴더( ~
일명 )에 저장했습니다 . 아래에서 선택한 디렉토리와 파일 이름 대신 자신에게 맞는 디렉토리와 파일 이름을 선택할 수 있습니다.$HOME
tmux
$ cp ~/.tmux/plugins/tmux-logging/scripts/toggle_logging.sh \
~/.ensure_tmux_logging_on.sh
tpm
(사용된 옵션이 없으면 tmux-logging
복제하거나 빌드한 모든 위치에서 스크립트에 액세스해야 합니다 tmux-logging
.)
~/.ensure_tmux_logging_on.sh
이제 아래와 같이 변경해 보세요 . (제가 주석 처리한 원본 코드를 유지할 필요는 없습니다. 해당 부분이 있으므로 원본 텍스트를 검색하여 바꾸거나 저처럼 주석 처리할 수 있습니다. 이렇게 하면 새로운 내용이 어디에 있어야 하는지 알 수 있습니다. 가다 .)
---
### changed for auto-logging (I often put in my username and date of change)
### bballdave025, 2022-02-28
#orig#CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
#orig#source "$CURRENT_DIR/variables.sh"
#orig#source "$CURRENT_DIR/shared.sh"
## new for tmux auto-logging, bballdave025 2022-02-28
TMUX_LOGGING_SCRIPTS_DIR="$HOME/.tmux/plugins/tmux-logging/scripts"
CURRENT_DIR="$TMUX_LOGGING_SCRIPTS_DIR"
## Not really our current dir, but it allows other code called
##+ downstream to work.
source "$TMUX_LOGGING_SCRIPTS_DIR/variables.sh"
source "$TMUX_LOGGING_SCRIPTS_DIR/shared.sh"
---
### original function commented out, bballdave025 2022-02-28
#stop_pipe_pane() {
# tmux pipe-pane
# display_message "Ended logging to $logging_full_filename"
#}
### new function added, bballdave025 2022-02-28
confirm_logging()
{
display_message "Logging already happening to ${logging_full_filename}"
}
---
#original comment## starts/stop logging
# starts/continues logging ( bballdave025, 2022-02-28 )
#orig#toggle_pipe_pane() {
## -v- new function name -v- , bballdave025, 2022-03-09
ensure_pipe_pane_on()
{
if is_logging; then
#orig#set_logging_variable "not logging"
#orig#stop_pipe_pane
# -v- bballdave025 2022-02-28 -v- first line probably unneeded (?)
set_logging_variable "logging"
confirm_logging
# everything from here is as in the original
else
set_logging_variable "logging"
start_pipe_pane
fi
}
## -v- main changed -v- by bballdave025, 2022-03-08
#orig#main() {
#orig# if supported_tmux_version_ok; then
#orig# toggle_pipe_pane
#orig# fi
#orig#}
main()
{
if supported_tmux_version_ok; then
ensure_pipe_pane_on
fi
}
main
---
나만큼 장황할 필요는 없습니다. 즉, 모든 주석과 이전 줄이 필요하지 않습니다. 무엇이 바뀌고 있는지 명확해지기를 바랍니다. 이 코드를 더 간단하게 만드는 방법이 있습니다. 무슨 일이 일어나고 있는지 이해했다면 그렇게 해도 됩니다.
스크립트가 실행 가능한지 확인하세요
$ chmod +x ~/.ensure_tmux_logging_on.sh
~/.bash_profile
이제 비로그인 터미널( a , a 등 소스 )에서 호출될 파일에 이를 추가할 수 있는 몇 줄의 코드가 있습니다 ~/.bashrc
. ~/.bash_profile
내 예에서는 비로그인 화면에 대해 `~/.bash_profile로 호출했으므로 ~/.bashrc
거기에 내 줄을 추가하겠습니다.
~/.ensure_tmux_logging_on.sh
이 줄을 사용하면 새 터미널에 처음 들어갈 때 실행 됩니다 . 여러분의(또는 다른 파일) tmux
아무 곳에나 다음 줄을 추가하세요 . ~/.bashrc
저는 마지막에 넣었습니다.
if [ ! -z $TMUX ]; then
$HOME/.ensure_tmux_logging_on.sh
fi
내 시스템 "RHEL 8"(RedHat 기반)에서 테스트되었습니다.
짧은 버전: 작동합니다. 다음 섹션을 건너뛰어도 되지만, 아래 5개 항목을 확인해 보시는 것을 추천드립니다.
다음은 알아야 할 몇 가지 중요한 사항입니다.
1)이제 OP의 명령을 실행하십시오.
$ tmux new -s mysession1
그 결과 로그 파일이 생성되고,
~/mytmuxsessions/mysession1-1-1.log
마찬가지로 $ tmux new -s mysession2
로그 파일이 생성됩니다.~/mytmuxsessions/mysession2-1-1.log
2)이러한 세션에서 새로 생성된 창/창은 터미널 프롬프트에서 명령을 사용하여 이름으로 생성한 경우에도 숫자로 표시됩니다.
삼)세션 이름을 제공하지 않으면(터미널 프롬프트에서 새 창을 시작하고 ( -s
) SESSION_NAME` 옵션을 사용해야만 제공 가능) 할당된 세션 번호만 얻을 수 있습니다.
4)OP에 대해 설정할 때 새 세션의 로그는 이전에 생성된 세션과 동일한 이름을 갖습니다. 즉, 두 번째 사용 시 tmux new -s mysession1
이전 로그 파일을 덮어쓰게 됩니다. 예가 없으면 명확하지 않으므로 여기에 하나가 있습니다.
$ ls -lAh ~/mytmuxsessions # to see that mysession1-1-1.log is already there
-rw-r--r--. 1 bbd025 bbd025 405 Mar 1 10:22 mysession1-1-1.log
-rw-r--r--. 1 bbd025 bbd025 824 Feb 28 17:40 mysession2-1-1.log
$ tmux new -s mysession1 # I'll enter a new tmux session after this command
(tmux)$ # Some stuff.
(tmux)$ echo "Putting text, I/O, etc. in the logfile"
(tmux)$ alias ls='ls --color=auto'
(tmux)$ type ls
ls is aliased to 'ls --color=auto'
(tmux)$ tmux kill-session -t mysession1
$ ls -lAh ~/mytmuxsessions
-rw-r--r--. 1 bbd025 bbd025 1.6K Mar 2 13:02 mysession1-1-1.log
-rw-r--r--. 1 bbd025 bbd025 824 Feb 28 11:40 mysession2-1-1.log
size바이트로 mytmuxsession1-1-1.log
생성된 첫 번째 로그 파일은 더 이상 존재하지 않습니다. 대신 이제 size 로 생성 했습니다 .Mar 1 10:22
405
mytmuxsession1-1-1.log
Mar 2 13:02
1.6K
이 재정의를 피하려면 BSD 명령 형식에 특정 유형의 날짜 문자열을 포함하십시오 date
. 예를 들어 tmux-logging을 variables.sh
다음과 같이 변경하십시오.
filename_suffix="#{session_name}-#{window_index}-#{pane_index}\
-%Y%m%dT%H%M%S%z.log"
이는 재정의와 동일하지 않습니다.기간tmux
아까 얘기했던 그 모임.
5)이것이 실제로 필요한지 확실하지 않지만 내 항목 ~/.bashrc
(또는 ~/.bash_profile
다른 항목)에 다음을 추가했습니다. 더 많은 설명/옵션이 포함된 예제 버전도 있습니다.
## Function to be run every time one exits a bash terminal
finish()
{
if [ ! -z $TMUX ]; then
$HOME/.tmux/plugins/tmux-logging/scripts/toggle_logging.sh
fi
}
trap finish EXIT
짧은 예
테스트하기 전에 터미널을 종료하고 다시 시작하거나 실행해야 합니다 source ~/.bashrc
(또는 편집한 유사한 파일을 가져와야 합니다). 저는 두 번째 방법을 선호하는데, 확실하지 않은 경우 등 ~/.bash_profile
은 ~/bashrc
재부팅하는 것이 좋습니다.
편집하다이 답변보다 과잉처럼 느껴지는 더 긴 예가 있습니다. 꼭 보고 싶으시다면 스크린샷을 찍어서 첨부해두었습니다. 현재 페이지(p1, p2 및 p3)는 이제 다음을 가리킵니다.www.google.com.p1,p2, 그리고p3.
긴 예제를 보여주는 대신 일련의 명령만 보여 드리겠습니다. 실제 로그의 경우 tmux
새 세션, 창 또는 창에 들어간 후 몇 가지 명령을 실행하고 몇 가지 설명을 작성했습니다. 마지막으로 생성된 파일을 보여드리겠습니다.
내 시스템에 대해 더 자세히 설명해야 합니다. PuTTY를 통해 RHEL8 시스템에 대한 SSH 연결을 설정하여 기본 터미널을 제공했습니다. 거기서부터 나는 달려간다
$ tmux new -s mysession1
(이렇게 하면 세션: mysession1
; 창: 1
; 및 창: 이 열립니다 1
. 로그 파일도 시작됩니다 mysession1-1-1.log
.)
주석을 달고 [Prefix]+ 를 누른 후의 터미널 모습은 다음과 같습니다 [w].tmux
┌──────────────────────────────────────────────────────────────────────────────┐
│(0) - mysession1: 1 windows (attached) │
│(1) └─> 1 bash* (1 panes) "bbd025@MACHINE: /home/bbd025" ┆
│
│
│┌ 1 (sort: index)────────────────────────────────────────────────────────────┐┆
││ bbd025@MACHINE:~ ││
││ $ # I'm in tmux, and it looks like it's logging! ││
││ bbd025@MACHINE:~ ││
││ $ # I'll press [Prefix]+[w] to see session info & then [ENTER] to get back ││
││ bbd025@MACHINE:~ ││
││ ┌───┐ ││
││ │ 1 │ ││
││ └───┘ ││
│└────────────────────────────────────────────────────────────────────────────┘│
│[mysession1:bash* "bbd025@MACHINE: /home/bbd" HH:MM dd-mmm-yy│
└──────────────────────────────────────────────────────────────────────────────┘
[Prefix]+ w위에 보이는 것을 불러보세요. 세션으로 돌아가려면 해당 세션이 강조 표시되어 있는지 확인하고(이 세션은 유일한 세션이므로 아무것도 수행할 필요가 없습니다q) 를 누릅니다 ENTER.
세션을 분리하고 시작하겠습니다 mysession2
. 죄송합니다. 명령줄을 엉망으로 만들었지만 로그 파일의 크기가 정확하길 원합니다.
$ tmux detach-client -s mysession1
이제 우리는 non-tmux 쉘로 돌아왔습니다. 다른 코드 블록을 보여주더라도 동일한 터미널 위치에 있으면서 터미널에 있는 코드를 대체합니다.
$ tmux new -s mysession2
tmux
나타나는 터미널에는 로그 파일이 있습니다.mysession2-1-1.log
이때 [Prefix]+를 사용하면 w팝업창이 뜹니다.
(0) - mysession1: 1 windows
(1) └─> 1: bash* (1 panes) "bbd025@MACHINE: /home/bbd025"
(2) - mysession2: 1 windows (attached)
(3) └─> 1: bash* (1 panes) "bbd025@MACHINE: /home/bbd025"
$ tmux detach-client -s mysession2
kill 을 할 수 있는 비tmux 쉘로 돌아가자 mysession2
.
$ tmux kill-session -t mysession2
다른 창을 열고 mysession1
두 번째 창 내에서 별도의 창을 열어서 로그가 어떻게 끝나는지 살펴보겠습니다. tmux가 아닌 터미널에서 시작하십시오.
tmux attach -t mysession1
원래 창에 입력한 모든 내용이 표시됩니다 tmux new -s mysession1
.
$ tmux new-window -n second_window
tmux
bash
새로운 빈 터미널이 나타납니다. 로그 파일이 있을 것입니다 mysession1-2-1.log
.
$ tmux ls
mysession1: 2 windows (Created Mon Feb 28 12:02:06 2022) [80x29] (attached)
$ # I press [Prefix]+[n] to get to the next `tmux` window, i.e. the one with
$ #+ logfile, `mysession1-1-1.log`
$ tmux split-window -v # This is the same as [Prefix]+[%]
이제 두 개의 터미널이 대시선으로 구분되어 있습니다. 하나는 다른 하나 위에 있습니다. 하단 터미널에 로그 파일이 있습니다mysession1.1.2
$ tmux display-panes
$ # You'll have seen numbers on each pane. The bottom one should have
$ #+ shown '2'. If you want to make sure you are typing in pane 2, do
$ tmux select-pane -t 2
$ # You could also have done [Prefix]+[q]+[2]
창 2에서는 이름이 없는 새 창을 엽니다.
$ tmux new -w
이제 로그 파일이 있는 tmux 터미널에 있습니다 0-1-1
.
이제 그 후에 tmux kill-server
로그 파일을 최종적으로 확인해 보겠습니다.
# In T0
$ ls -Ss1pq --block-size=1
total 28672
12288 mysession1-1-1.log
4096 0-1-1.log
4096 mysession1-1-2.log
4096 mysession2-1-1.log
4096 mysession1-2-1.log
$ ls -lAh
total 28K
-rw-r--r--. 1 bbd025 bbd025 1.3K Mar 8 12:03 0-1-1.log
-rw-r--r--. 1 bbd025 bbd025 8.5K Mar 8 11:49 mysession1-1-1.log
-rw-r--r--. 1 bbd025 bbd025 767 Mar 8 11:49 mysession1-1-2.log
-rw-r--r--. 1 bbd025 bbd025 648 Mar 8 11:49 mysession1-2-1.log
-rw-r--r--. 1 bbd025 bbd025 725 Mar 7 17:41 mysession2-1-1.log
노트:
[1] 새로운 filename_suffix
변수는 업데이트 후에도 유지되지 않을 수 있습니다 tmux
. 변경 사항을 기억하고 액세스할 수 있도록 (OP의 경우) 다음을 내 항목에 추가합니다.~/.bash_profile
export MY_TMUX_FNAME_SUFFIX_LINE='filename_suffix="#{session_name}-#{window_index}-#{pane_index}.log"'
내 경우에는 다음을 추가하겠습니다. 작업을 더 쉽게 하기 위해 줄당 80자 규칙을 건너뛰었습니다.
export MY_TMUX_FNAME_SUFFIX_LINE='filename_suffix="bbd025-%s-#{session_name}-#{window_index}-#{pane_index}-%Y%m%dT%H%M%S%z.log"'
이제 기본적으로 환경 변수가 표시됩니다.
echo $MY_TMUX_FNAME_SUFFIX_LINE
향후 업데이트 후에 다시 확인하여 tmux
로그 파일 이름에 대한 개인 설정을 유지하는 방법을 알 수 있습니다.