📌 리눅스 실시간 로그 확인하는 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 | 특정 프로세스 종료 시까지 로그 확인 |
'삼분공부 > 기타' 카테고리의 다른 글
[css] CSS 크기 단위 비교 (0) | 2025.04.07 |
---|---|
[Linux] 리눅스 파일 관련 명령어 총정리 (0) | 2025.04.03 |
[Git] You have not concluded your merge (MERGE_HEAD exists). hint: Please, commit your changes before merging. Exiting because of unfinished merge. (0) | 2025.04.01 |
[Git] 프로젝트 수정 중 깃 원격 저장소 주소 변경 시 ! (0) | 2025.02.12 |
[PM2] 명령어 정리 (1) | 2025.02.05 |