서버에서 실시간 로그 확인하기
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