삼분공부/기타

[Linux] 리눅스 실시간 로그 명령어 정리

케이쓰리 2025. 2. 11. 09:17

📌 리눅스 실시간 로그 확인하는 tail 명령어 정리

tail 명령어는 파일의 마지막 몇 줄을 출력하거나, 파일이 업데이트될 때 실시간으로 변경 내용을 확인할 때 사용합니다.


기본 사용법

bash
복사편집
tail -n 100 filename.log # 마지막 100줄 출력 tail -f filename.log # 파일이 변경될 때 실시간 출력

🚀 자주 사용하는 옵션

옵션설명

-n [줄 수] 지정한 줄 수만큼 마지막에서부터 출력 (-n 50 → 마지막 50줄 출력)
-f 파일이 변경될 때 자동으로 추가 내용을 출력 (실시간 모니터링)
-F -f와 비슷하지만, 파일이 재생성되거나 로그 로테이션이 발생해도 자동으로 계속 추적
--pid=[PID] 특정 프로세스가 종료될 때까지 -f 모니터링 유지
-q 여러 파일을 모니터링할 때 파일명을 출력하지 않음
-v 여러 파일을 모니터링할 때 파일명을 출력함

📌 실전 예제

1️⃣ 실시간 로그 확인 (-f)

bash
복사편집
tail -f /var/log/syslog

📌 설명: /var/log/syslog 파일의 마지막 부분을 실시간으로 출력. (로그 파일이 계속 갱신될 때 모니터링 가능)

2️⃣ 마지막 100줄 출력 후 실시간 모니터링 (-n + -f)

bash
복사편집
tail -n 100 -f /var/log/nginx/access.log

📌 설명:

  • 로그 파일의 마지막 100줄을 먼저 출력한 후,
  • 이후에 추가되는 내용도 계속 출력. (서버 로그 확인할 때 유용)

3️⃣ 로그 파일이 재시작돼도 자동 추적 (-F)

bash
복사편집
tail -F /var/log/nginx/error.log

📌 설명:

  • -f와 유사하지만, 로그 파일이 삭제되거나 다시 생성되어도 계속 모니터링
  • logrotate로 인해 로그 파일이 갱신될 경우 유용.

4️⃣ 여러 개의 로그 파일 실시간 확인

bash
복사편집
tail -f /var/log/syslog /var/log/auth.log

📌 설명:

  • 여러 개의 파일을 동시에 모니터링할 수 있음.
  • /var/log/syslog와 /var/log/auth.log의 변경 사항을 동시에 확인.

5️⃣ 특정 프로세스가 종료될 때까지 로그 확인 (--pid)

bash
복사편집
tail -f /var/log/myapp.log --pid=1234

📌 설명:

  • PID 1234 프로세스가 종료될 때까지 로그를 계속 출력
  • 특정 서비스가 종료될 때까지 로그를 확인하고 싶을 때 유용.

🎯 추가 활용 예제

✅ grep과 함께 사용하여 특정 키워드 필터링

bash
복사편집
tail -f /var/log/syslog | grep "ERROR"

📌 설명:

  • /var/log/syslog에서 "ERROR"가 포함된 로그만 실시간 출력
bash
복사편집
tail -f /var/log/nginx/access.log | grep --color "500"

📌 설명:

  • 웹 서버 로그에서 HTTP 500 오류만 필터링해서 확인

🔥 응용: 로그 파일 변경 시 알람 보내기

tail과 grep을 조합하여 특정 패턴이 감지되면 알람을 보낼 수도 있음.

에러 감지 시 알림 스크립트

bash
복사편집
tail -f /var/log/syslog | grep --line-buffered "ERROR" | while read line; do echo "[ALERT] 에러 감지: $line" | mail -s "시스템 에러 감지" admin@example.com done

📌 설명:

  • syslog에서 "ERROR"가 포함된 로그가 나오면
  • 메일을 보내는 스크립트 실행

🎯 요약

명령어설명

tail -n 100 filename.log 마지막 100줄 출력
tail -f filename.log 실시간 로그 모니터링
tail -F filename.log 로그 파일이 변경되거나 재생성돼도 지속 추적
`tail -f filename.log grep "ERROR"`
tail -f filename.log --pid=1234 특정 프로세스 종료 시까지 로그 확인