python/tips
tail 로그를 별도 파일로 저장하는 방법
a_mnesia
2025. 2. 20. 11:25
728x90
반응형
tail 명령어를 이용해 Tomcat 로그(catalina.out)를 실시간으로 모니터링하면서 별도 파일로 저장하는 방법입니다.
1. tail -f를 사용하여 로그 저장
가장 간단한 방법은 tail -f를 사용하여 로그를 저장하는 것입니다.
실행 명령어 (기본)
tail -f /path/to/tomcat/logs/catalina.out > /path/to/logs/my_tail.log
- tail -f: 로그를 실시간 모니터링
- >: 출력 내용을 새로운 파일로 저장
- 단점: 이 방식은 Ctrl + C로 종료하면 로그 저장도 멈춥니다.
2. tee를 사용하여 파일과 화면에 동시에 출력
tee 명령을 사용하면 로그를 파일에 저장하면서 동시에 터미널에 출력할 수 있습니다.
파일과 터미널 동시 출력
tail -f /path/to/tomcat/logs/catalina.out | tee -a /path/to/logs/my_tail.log
- tee -a: 파일에 추가(-a: append 모드)
장점
- 로그를 실시간 확인하면서 저장 가능
- 중간에 Ctrl + C로 종료해도 파일이 유지됨
3. nohup을 사용하여 백그라운드 실행
터미널을 닫아도 로그 저장이 계속되도록 하려면 nohup을 사용할 수 있습니다.
터미널 종료 후에도 로그 저장 유지
nohup tail -f /path/to/tomcat/logs/catalina.out > /path/to/logs/my_tail.log 2>&1 &
- nohup: 터미널 종료 후에도 실행 유지
- 2>&1: 표준 에러 출력도 포함
- &: 백그라운드 실행
백그라운드 프로세스 확인 및 종료
ps aux | grep tail
kill -9 <PID> # 특정 프로세스 종료
4. screen 또는 tmux를 사용하여 안정적인 로그 저장
만약 원격 서버에서 로그를 장시간 저장해야 한다면, screen 또는 tmux를 사용하는 것이 좋습니다.
screen을 이용한 로그 저장
screen -S tail_log
tail -f /path/to/tomcat/logs/catalina.out > /path/to/logs/my_tail.log
- Ctrl + A, D: 세션을 백그라운드로 보내기
- 다시 접속: screen -r tail_log
5. cron을 이용한 로그 자동 저장 및 관리
일정 시간마다 로그를 저장하고 싶다면 cron을 사용하면 됩니다.
매일 로그 저장 (예: 00:00마다 실행)
crontab -e
추가할 내용:
0 0 * * * tail -n 1000 /path/to/tomcat/logs/catalina.out > /path/to/logs/catalina_$(date +\%F).log
- 매일 자정(0 0 * * *)에 최근 1000줄을 새로운 파일로 저장
- 날짜별(catalina_YYYY-MM-DD.log)로 저장됨
최종 정리 (추천 방법)
방법설명명령어기본 로그 저장 | 로그를 파일로 저장 (터미널 닫으면 중단됨) | tail -f catalina.out > my_tail.log |
화면 + 파일 저장 | 실시간 확인하면서 저장 | `tail -f catalina.out |
터미널 종료 후에도 실행 | 백그라운드 실행 | nohup tail -f catalina.out > my_tail.log 2>&1 & |
원격 서버에서 사용 | screen을 활용하여 안정적 실행 | screen -S tail_log + tail -f catalina.out > my_tail.log |
자동 로그 저장 | cron으로 일정 시간마다 저장 | crontab -e |
이제 상황에 맞게 tail 로그를 별도로 저장할 수 있습니다! 🚀
728x90
반응형