소소한 컴퓨터 이야기

서버에서 실시간 로그 확인하기

by Cori

서버에서 동작중인 프로그램의 상태를 확인하기 위해서는, 실시간 로그 모니터링 같은 기능이 필요하다.

여기서는 로그를 실시간으로 모니터링 할 수 있는 몇 가지 방법들을 소개해본다.


tail 사용하기

tail -f ~.log

tail 명령어는 파일의 마지막 몇 줄을 출력하는 명령어로, -f 옵션을 통해 파일의 끝부분을 실시간으로 모니터링할 수 있다. 해당 옵션은 파일에 새로운 내용이 추가되면 즉시 표시할 수 있게 해준다.

 

watch 사용하기

watch tail -n 10 your_log_file.log

watch 명령어는 주기적으로 명령어를 실행하고 결과를 갱신한다. -n 옵션을 통해 n초 단위로 갱신할 수 있다.

 

less 사용하기

less +F your_log_file.log

tail -f와 유사하지만, 정지하고 로그를 검색하거나 특정 위치로 이동할 수 있는 기능을 제공한다. +F 옵션을 통해 파일 끝부분을 실시간으로 모니터링 할 수 있으며, Ctrl+C를 통해 실시간 모니터링을 중단하고 정적 파일 탐색이 가능하다.

 

nohup 사용하기

nohup python -u ~.py >> ~.log 2>&1 &

nohup 명령어는 no hangup의 약자로, 터미널 세션이 종료되어도 프로세스가 계속 실행되도록 도와준다. 기본적으로, 표준 출력(stdout)과 표준에러(stderr)를 nohup.out 파일로 리다이렉트한다.

 

python 명령어 뒤에 나오는 -u 옵션 또한 확인할 수 있는데, 해당 옵션은 python의 입출력을 비버퍼링(unbuffered) 모드로 설정(출력을 즉시 파일이나 화면으로 보냄)한다. 

 

>> ~.log 에서 >>는 추가(append)모드를 의미하며, 기존 파일의 내용은 지워지지 않고, 새로운 내용이 뒤에 추가된다. 기존 내용을 덮어씌우는 방식으로 기록을 남기고 싶다면 '>' 기호를 사용하면 된다. 

 

2>&1 에서 2는 표준에러(stderr), 1은 표준출력(stdout)을 의미하며, 2>&1는 표준 에러를 표준 출력으로 리다이렉션한다는 것을 의미한다. 모든 출력 값이 ~.log 파일로 기록된다. 

 

2>&1 뒤의 &는 백그라운드 실행을 의미하며, 이 명령어를 통해 프로세스는 백그라운드에서 실행되게 된다.


Multitail 사용하기  - 여러 로그 동시 모니터링

sudo apt install multitail   --- ubuntu
brew install multitail   --- mac os 

multitail /path/to/log1.log /path/to/log2.log

여러 파일의 로그를 한 화면에서 실시간으로 확인 가능하며, 각 로그 파일을 별도의 창에 표시한다. 

'CS > Server' 카테고리의 다른 글

알아두면 쓸데있는 Ubuntu 명령어 모음  (1) 2024.09.25
Amazon ec2 instance 기본 세팅하기  (0) 2024.03.11
EC2 Setting  (2) 2024.01.03
Window 딥러닝 서버 세팅 일지  (0) 2023.02.24
Ubuntu 딥러닝 서버 세팅 일지  (0) 2023.02.06

블로그의 정보

코딩하는 오리

Cori

활동하기