우분투 접속중인 유저 모니터링 하기
OverView
우분투 시스템 내 유저들을 모니터링 하는 명령어들입니다.
- who
- w
- usersp
[root@localhost ~]# who -aH
NAME LINE TIME IDLE PID COMMENT EXIT
system boot 2023-03-16 23:22
run-level 3 2023-03-16 23:22
root + tty1 2023-03-17 02:15 01:13 667
test + pts/0 2023-03-17 23:52 02:02 15151 (gateway)
[root@localhost ~]# w
01:54:35 up 1 day, 2:32, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 금02 1:13m 0.08s 0.02s bash
test pts/0 gateway 23:52 2:02m 0.00s 0.00s -bash
[root@localhost ~]# users
root test
who와 w 출력 결과는 공통되는 내용이 많습니다. (내용이 적은 users
는 논외)
공통 부분
- 접속중인 유저 목록 (USERNAME)
- 접속중인 유저가 사용하는 터미널 (TTY)
- 시스템 부팅 시간(system boot)
- 터미널과 상호작용한 마지막 시간 (IDLE)
- 마지막 터미널 사용 시간
차이점
who | w | |
---|---|---|
용도 | (프로세스 관리 관점) 접속한 유저가 무슨 pid로 접속했는지 확인할 때 | (시스템 관리 관점)어느 유저가 시스템 부하가 심한지 모니터링 할 때 |
차이점 | run level(부팅모드) 터미널 PID |
시간당 시스템 평균 부하 터미널에서 실행한 프로세스들의 cpu 사용시간(JCPU) |
who
who 명령은 다음 정보를 찾는 데 사용됩니다.
- 마지막 시스템 부팅 시간
- 시스템의 현재 실행 수준(Run level)
- 로그인한 사용자 목록
who [OPTION]... [ FILE | ARG1 ARG2 ]
-H
옵션으로 행 이름을 볼 수 있습니다.
-b
는 시스템이 마지막으로 부팅된 시간을 보여줍니다
[root@localhost ~]# who
root tty1 2023-03-17 02:15
test pts/0 2023-03-17 23:52 (gateway)
[root@localhost ~]# who -H
NAME LINE TIME COMMENT
root tty1 2023-03-17 02:15
test pts/0 2023-03-17 23:52 (gateway)
[root@localhost ~]# who -b
system boot 2023-03-16 23:22
| –> |
w
접속한 유저 리스트와 시스템 부하를 확인할 때 유용한 명령어입니다.
w
명령어 출력 결과는 헤더 정보와 바디 정보로 나눠집니다.
# 현재 시간 비교용
[root@localhost ~]# date
2023. 03. 18. (토) 01:20:06 KST
[root@localhost ~]# w
01:20:07 up 1 day, 1:58, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 금02 39:11 0.08s 0.02s bash
test pts/0 gateway 23:52 1:28m 0.00s 0.00s -bash
헤더에는 시스템 사용량에 대한 전체 통계 정보와 유저 데이터 속성명을 나타냅니다.
- 현재 시간
- 시스템이 부팅된 시간
- 접속 중인 유저 수
- 시스템 부하 평균 (1, 5, 15분)
의미 | 현재 시각 | 부팅 후 지난 시간 | 접속한 유저 수 | 평균 부하, 1분, 5분, 15분 |
---|---|---|---|---|
예시 | 01:20:07 | up 1 day, 1:58, | 2 users, | load average: 0.00, 0.01, 0.05 |
특이하게 헤더가 기본으로 출력되고 -h
를 사용하면 출력되지 않습니다.
바디 정보는 유저별 사용량 정보를 나타냅니다.
- 유저 이름
- tty 이름
- 원격 호스트
- 로그인 시간
- 유휴 시간
- JCPU : tty에서 시작된 모든 프로세스들이 사용한 시간 집계
- PCPU :
what
프로세스가 사용한 시간 - what : w 명령어를 실행시킨 프로세스 (주로 쉘, bash)
유너 네임 | 터미널 이름 | 원격 호스트 | 로그인 유지 시간 | 유휴 시간 | JPCU | PCPU | what process |
---|---|---|---|---|---|---|---|
USER | TTY | FROM | LOGIN@ | IDLE | JCPU | PCPU | WHAT |
root | tty1 | 금02 | 39:11 | 0.08s | 0.02s | bash | |
test | pts/0 | gateway | 23:52 | 1:28m | 0.00s | 0.00s | -bash |
-i
패킷의 소스를 ip 주소로 나타냅니다.
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 금02 33:43 0.08s 0.02s bash
test pts/0 10.0.2.2 23:52 1:22m 0.00s 0.00s -bash
users
접속 중인 유저들의 호스트 네임만 출력하는 간단한 명령어입니다. 접속 중인 유저들을 대상으로 파이프라인을 동작시킬 때 사용하기 좋습니다.
[root@localhost ~]# users
root
Leave a comment