Linux

[Linux] tail 활용 가이드 : 실시간 로그 다루기

nayoungs 2024. 11. 18. 00:21
728x90

리눅스 시스템에서 작업을 하다보면, 매우 큰 파일의 일부만 빠르게 확인하거나, 로그 파일에 로그가 쌓이는 것을 실시간으로 확인하고 싶은 경우가 있다. 이럴 때 유용하게 사용하는 명령어가 바로 tail 이다.

tail

tail 명령어는 이름 그대로 파일의 꼬리, 즉 파일의 끝 부분을 출력하는 명령어다. 주로 로그 파일을 확인할 때 많이 사용되고, 파일의 변화가 감지될 때마다 자동으로 업데이트하여 보여줄 수 있다.

$ tail [옵션] [파일명]

기본적으로 tail 은 파일의 마지막 10줄을 출력한다. 다음과 같이 사용할 수 있다.

$ tail filename.log

 

마지막 N줄 출력하기

-n 옵션을 사용하면, 마지막 N 줄을 출력할 수 있다. 다음은 파일의 마지막 20줄을 출력한다.

$ tail -n 20 filename.log

앞서 말했듯이 N을 지정하지 않으면 기본적으로 10줄을 출력한다.

 

실시간 모니터링하기

tail-f 옵션과 함께 사용하면 파일의 끝부분을 모니터링할 수 있다. 예를 들어 로그 파일의 경우, 로그 파일이 업데이트될 때마다 새로운 내용을 자동으로 출력한다.

$ tail -f filename.log

한 번에 여러 파일을 모니터링하는 것도 가능하다. 다음과 같이 파일을 공백으로 구분하여 나열하면 된다.

$ tail -f file1.log file2.log

-f 를 숫자와 함께 사용하는 것도 가능하다. 예를 들어 다음과 같이 작성하면, 먼저 10줄이 출력되고, 이후 파일에 새로운 로그가 추가될 때마다 실시간으로 출력된다.

$ tail -10f file.log

grep 과도 많이 사용하는데, 다음과 같이 작성하여 특정 문자열을 포함하는 로그 항목만 필터링할 수 있다.

$ tail -f filename.log | grep "ERROR"

 

크기(바이트) 만큼 출력하기

-c 옵션을 사용하면 파일의 마지막 N 바이트를 출력할 수 있다. 다음과 같이 작성하면 파일의 마지막 50 바이트를 출력한다.

$ tail -c 50 filename.log 

 

대표적인 옵션들을 정리하면 다음과 같다.

옵션 의미
-c , --bytes 끝에서부터 K 바이트 출력 옵션
-f , --follow 종료하지 않고 계속적으로 대기하면서 문자 출력 옵션
-n, --lines 끝에서 부터 K 라인 출력 옵션
-s, --sleep-interval N초 동안 Sleep에  들어가게 하는 옵션
-v, --verbose 헤더 포함 출력 옵션
728x90