tmux 사용법: SSH가 끊겨도 작업 유지하기 (세션, 화면 분할, 단축키)
서버에서 한 시간짜리 백업이나 대용량 파일 전송을 돌려 놓았는데 와이파이가 잠깐 끊기면서 SSH 세션이 닫히고, 작업까지 함께 중단된 경험이 있다면 tmux가 답이다. tmux는 서버 안에 세션을 따로 만들어 두고, SSH 연결이 끊겨도 그 안의 작업은 계속 돌게 해 주는 터미널 멀티플렉서다. 이 글에서는 실무에 바로 쓰는 tmux 사용법 기초인 세션, 창, 화면 분할, 설정 파일까지 정리한다. 세션이 아예 끊기지 않게 하는 방법은 리눅스 서버 세션 타임아웃 방지 글에 따로 있다.

tmux가 필요한 순간
- 오래 걸리는 mysqldump 백업이나 rsync 전송을 돌릴 때
- 노트북을 덮었다가 나중에 같은 화면으로 이어서 작업하고 싶을 때
- 로그를 보면서 옆 화면에서 명령을 실행하고 싶을 때
- 여러 서버 작업 창을 하나의 SSH 연결 안에서 관리하고 싶을 때
핵심은 “작업이 SSH 연결이 아니라 서버 안의 tmux 세션에 붙어 있다”는 점이다. 연결이 끊겨도 세션은 서버에 남아 있고, 다시 접속해서 붙기만 하면 된다.
tmux 설치
# Ubuntu / Debian
sudo apt install tmux
# Rocky / RHEL 계열
sudo dnf install tmux
tmux -V패키지 설치 방법은 리눅스 패키지 관리에 정리해 두었다.
tmux 사용법 기본: 세션 만들고 다시 붙기
# 이름 있는 세션 만들기
tmux new -s backup
# (세션 안에서) 오래 걸리는 작업 실행
mysqldump --single-transaction mydb | gzip > /backup/mydb.sql.gz
# 세션에서 빠져나오기(detach): Ctrl+b 를 누른 뒤 d
# 세션 목록 보기
tmux ls
# 다시 붙기(attach)
tmux attach -t backup
# 세션 끝내기
tmux kill-session -t backupCtrl+b는 tmux 단축키의 시작 키(prefix)다. Ctrl과 b를 함께 눌렀다 뗀 뒤 다음 키를 누른다. 아래 표의 단축키도 모두 이 방식이다.
SSH가 끊겼을 때
따로 할 일이 없다. 다시 SSH로 접속한 뒤 tmux attach -t backup만 입력하면 끊기기 전 화면 그대로 돌아온다. 작업도 그동안 계속 돌고 있었다. SSH 접속 자체가 안 될 때는 SSH 접속 안될 때 확인할 것을 보자.
tmux 사용법 단축키: 창과 화면 분할
| 단축키 | 동작 |
|---|---|
Ctrl+b d | 세션에서 빠져나오기(detach) |
Ctrl+b c | 새 창(window) 만들기 |
Ctrl+b n / Ctrl+b p | 다음 / 이전 창 |
Ctrl+b 0~9 | 번호로 창 이동 |
Ctrl+b , | 창 이름 바꾸기 |
Ctrl+b % | 화면 좌우 분할 |
Ctrl+b " | 화면 상하 분할 |
Ctrl+b 방향키 | 분할된 칸(pane) 이동 |
Ctrl+b z | 현재 칸 최대화 / 원래대로 |
Ctrl+b x | 현재 칸 닫기 |
Ctrl+b [ | 스크롤 모드(q로 나가기) |
예를 들어 왼쪽 칸에서 tail -f로 로그를 보고, 오른쪽 칸에서 서비스를 재시작하는 식으로 쓰면 창을 오갈 필요가 없다.
지난 출력 스크롤하기
tmux 안에서는 마우스 휠로 화면이 올라가지 않는 경우가 많다. Ctrl+b [ 를 누르면 스크롤 모드로 들어가 방향키나 Page Up으로 지난 출력을 볼 수 있고, q를 누르면 빠져나온다. 아래 설정으로 마우스를 켜 두면 휠도 쓸 수 있다.
tmux 사용법 설정: ~/.tmux.conf
# ~/.tmux.conf
set -g mouse on # 마우스로 칸 선택, 휠 스크롤
set -g history-limit 10000 # 스크롤 기록 늘리기
set -g base-index 1 # 창 번호 1부터
# 설정 다시 읽기
tmux source-file ~/.tmux.conf더 많은 옵션과 사용 예는 tmux 공식 위키에서 볼 수 있다.
screen과 비교
예전부터 쓰이던 screen도 같은 역할을 한다. 이미 익숙하다면 screen을 써도 되지만, 새로 배운다면 화면 분할과 설정이 직관적인 tmux를 권한다. screen의 기본 prefix는 Ctrl+a이고, 다시 붙을 때는 screen -r을 쓴다.
마무리
서버에서 5분 넘게 걸릴 작업이라면 일단 tmux new -s 이름으로 세션부터 만드는 습관을 들이자. 세션 만들기, Ctrl+b d로 빠져나오기, tmux attach로 다시 붙기 이 세 가지만 알아도 SSH가 끊겨 작업을 날리는 일은 사라진다. 실행 중인 프로세스를 확인하는 방법은 리눅스 프로세스 명령어에 있다.
첫 댓글을 남겨보세요