728x90

tmux는 터미널 멀티플렉서(Terminal Multiplexer)입니다.
하나의 SSH 세션 안에서 여러 개의 터미널 창(Window), 패널(Pane), 세션(Session)을 동시에 관리할 수 있게 해줍니다.
특히 서버 운영, 보안 점검, 로그 모니터링, 장시간 배치 작업, 원격 작업 환경에서 매우 강력합니다.
- SSH 끊겨도 작업 유지
- 여러 터미널을 한 화면에서 분할
- 세션 저장 및 재접속
- 백그라운드 작업 유지
- 로그 모니터링 최적화
- 협업(shared session) 가능
| 문제 | tmux 해결 |
|---|---|
| SSH 끊김으로 작업 종료 | 세션 유지 |
| 장시간 로그 분석 | detach 후 유지 |
| 여러 서버 동시 작업 | pane/window 분리 |
| 장애 대응 중 터미널 혼잡 | 구조적 분리 |
| 실시간 모니터링 | dashboard 형태 구성 |
| 원격지 작업 | reconnect 가능 |
예
tcpdumpjournalctl -ftail -f- Elasticsearch reindex
- DB migration
- vulnerability scan
- long-running Python script
이런 작업을 tmux 없이 하면 SSH 종료 순간 작업도 종료될 가능성이 큽니다.
설치 방법
Ubuntu / Debian
sudo apt update
sudo apt install tmux -y
RHEL / Rocky / AlmaLinux
sudo yum install tmux -y
또는
sudo dnf install tmux -y
macOS
brew install tmux
기본 사용 흐름
가장 중요한 개념
tmux
└─ Session
└─ Window
└─ Pane
예시
보안운영세션
├─ logs window
│ ├─ nginx pane
│ └─ auth pane
├─ monitoring window
└─ incident window
가장 기본적인 사용법
새 세션 생성
tmux
또는 이름 지정
tmux new -s security
세션 목록 확인
tmux ls
예시
security: 1 windows
monitoring: 2 windows
기존 세션 접속
tmux attach -t security
세션 분리(detach)
tmux 내부에서
Ctrl+b → d
의미
세션은 살아있고
현재 접속만 끊음
이게 tmux 핵심 기능입니다.
SSH 끊겨도 유지되는 원리
일반 SSH
SSH 종료
→ shell 종료
→ process 종료
tmux 사용
SSH 종료
→ tmux session 유지
→ process 유지
즉
python long_task.py
실행 중 SSH 끊겨도 살아있습니다.
Window 사용법
새 window 생성
Ctrl+b → c
window 이동
다음
Ctrl+b → n
이전
Ctrl+b → p
번호 이동
Ctrl+b → 0~9
window 이름 변경
Ctrl+b → ,
예
logs
monitor
incident
Pane 분할
운영에서 매우 중요합니다.
세로 분할
Ctrl+b → %
가로 분할
Ctrl+b → "
pane 이동
Ctrl+b → 방향키
pane 크기 조절
Ctrl+b → Ctrl+방향키
pane 종료
exit
또는
Ctrl+d
실무 활용 예시
예시 1 — 로그 모니터링
Window: logs
Pane1:
tail -f /var/log/nginx/access.log
Pane2:
tail -f /var/log/auth.log
Pane3:
journalctl -f
Pane4:
tcpdump -i eth0
예시 2 — Kubernetes 운영
Window1:
kubectl get pods -w
Window2:
kubectl logs -f api-pod
Window3:
htop
Window4:
watch kubectl top pods
예시 3 — 침해사고 대응
Pane1:
EDR query
Pane2:
grep IOC
Pane3:
SIEM query
Pane4:
Slack 대응
가장 중요한 운영 기능들
세션 자동 복구
현재 세션
tmux ls
재접속
tmux attach -t security
마지막 세션 자동 연결
tmux a
강제 세션 연결
다른 곳에서 붙어있을 때
tmux attach -d -t security
기존 연결 강제 종료 후 붙음.
세션 종료
tmux kill-session -t security
강력 추천 설정 (~/.tmux.conf)
기본 예시
set -g mouse on
setw -g mode-keys vi
set -g history-limit 50000
set -g base-index 1
setw -g pane-base-index 1
bind r source-file ~/.tmux.conf \; display "Reloaded!"
설정 의미
| 옵션 | 설명 |
|---|---|
| mouse on | 마우스 사용 |
| mode-keys vi | vim 스타일 |
| history-limit | 스크롤 증가 |
| base-index 1 | 번호 1부터 |
| reload bind | 설정 리로드 |
설정 적용
tmux source-file ~/.tmux.conf
또는
Ctrl+b → r
Copy Mode (매우 중요)
tmux는 자체 스크롤 버퍼를 가집니다.
300x250
진입
Ctrl+b → [
이동
vim 방식 가능
종료
q
실무에서 매우 좋은 패턴
패턴 1 — 서버별 세션 분리
tmux new -s prod
tmux new -s dev
tmux new -s security
패턴 2 — 업무별 window 구성
0: monitor
1: logs
2: deploy
3: incident
패턴 3 — 장시간 작업 유지
tmux new -s migration
python migrate.py
detach
Ctrl+b d
다음날 재접속 가능.
tmux + SSH 조합 핵심
추천 alias
alias ta='tmux attach'
alias tls='tmux ls'
alias tn='tmux new -s'
보안 관점 주의사항
세션 방치 위험
tmux 세션은 살아있음.
SSH 종료되어도
권한 유지 가능
- 작업 후 세션 종료 필요
- 공유 서버에서는 주의
- sudo 상태 유지 여부 확인
민감정보 노출
history buffer에 남을 수 있음
- API Key
- Token
- Password
- DB credentials
shared tmux 사용 주의
다른 사용자가 attach 가능할 수 있음. (권한 점검)
ls -al /tmp/tmux-*
tmuxinator / teamocil
복잡한 환경 자동 구성 가능.
name: security
windows:
- logs:
layout: tiled
panes:
- tail -f /var/log/auth.log
- journalctl -f
- htop
실행
tmuxinator start security
추천 추가 도구
| 도구 | 설명 |
|---|---|
| tmuxinator | 세션 자동 구성 |
| tmate | 공유 세션 |
| byobu | tmux wrapper |
| powerline | 상태바 강화 |
| oh-my-tmux | 고급 설정 |
실무 추천 단축키 TOP
| 기능 | 키 |
|---|---|
| detach | Ctrl+b d |
| 새 window | Ctrl+b c |
| pane 분할 | Ctrl+b % |
| pane 이동 | Ctrl+b 방향키 |
| copy mode | Ctrl+b [ |
| window rename | Ctrl+b , |
| 설정 reload | Ctrl+b r |
개인적으로 추천하는 운영 방식
Session:
prod
Window:
logs
monitor
deploy
debug
Pane:
서비스별 분리
이렇게 하면 장애 대응 속도가 매우 빨라집니다.
tmux와 screen 차이
| 항목 | tmux | screen |
|---|---|---|
| 현대적 기능 | 우수 | 제한적 |
| pane 분할 | 강력 | 약함 |
| 설정 | 편리 | 복잡 |
| plugin | 많음 | 적음 |
| 상태바 | 강력 | 제한적 |
현재는 대부분 tmux 사용.
처음 시작하는 추천 루틴
먼저 이것만 익히면 됩니다.
tmux new -s work
그리고
Ctrl+b c
Ctrl+b %
Ctrl+b "
Ctrl+b 방향키
Ctrl+b d
마지막
tmux attach -t work
이 정도만 익혀도 운영 효율이 크게 향상됩니다.
728x90
그리드형(광고전용)
댓글