로그 파일의 마지막 n 줄만 모니터링하는 방법은 무엇입니까?


110

내가 표시하고자하는 성장 로그 파일이 단지 지난 15 개 라인. 내가 할 수있는 일은 다음과 같습니다.

tail -n 15 -F mylogfile.txt

로그 파일이 채워 tail지면 디스플레이에 마지막 줄이 추가됩니다.

마지막 15 줄만 표시하고 업데이트 후 마지막 15 줄 이전에 줄을 제거하는 솔루션을 찾고 있습니다. 당신은 아이디어가 있습니까?


28
터미널 창의 크기를 15 줄로 조정하십시오.
Jonathan

1
그것도 좋은 것입니다.
Marc-Olivier Titeux

3
@Jonathan 천재!
Marsellus Wallace

조나단의 의견을 upvote에 또는 15 upvotes있는의 맛을 잃게 할 수 없습니다
jdero

답변:


151

watch를 사용하면 충분할 수 있습니다.

$ 시계 꼬리 -n 15 mylogfile.txt

1
큰! 고마워 또한 프로세스에서 'watch'명령을 배웁니다.
Marc-Olivier Titeux

1
파일이 두 watch업데이트 사이에 15 줄 이상 커지면이 솔루션이 작동하지 않습니다 . -n이 간격을 변경 하는 데 사용할 수 있습니다 .
bfontaine

25

watch를 사용하는 경우 -n각 업데이트 간격을 제어하는 ​​옵션을 사용해보십시오 .

따라서 다음은 2 초마다 tail을 호출합니다.

$ watch -n 2 tail -n 15 mylogfile.txt

1 초마다 폴링하는 동안

$ watch -n 1 tail -n 15 mylogfile.txt

13

로그 파일을 적게 실행하고 Shift + F를 누르면 덜 사용하여 파일을 스트리밍 할 수 있습니다. $ less mylogfile.txt 그런 다음 SHIFT + F를 누르면 스트리밍됩니다. 업데이트되는 로그 파일을 모니터링하는 것이 편리하다고 생각합니다.


1
아주 좋은 것입니다!
kaiser

8

아마도 당신은 그 -d매개 변수가 편리 하다는 것을 알 수 있습니다.

man watch

-d 연속 업데이트의 차이점을 강조 표시합니다. 옵션은 선택적인 인수를 읽어 강조 표시를 영구적으로 변경하여 첫 번째 반복 이후 한 번 이상 변경된 사항을 볼 수 있습니다.


1
잘 잡아!
Marc-Olivier Titeux가

0

Solaris, AIX 또는 HPUX 또는 UNIX와 유사한 (Linux 포함) 스크립트를 사용하여 로그 또는 이와 유사한 것을 모니터링 할 수 있습니다.

while true; 
    clear; 
    do date; 
    echo ;
    echo "MONITORING LOG IN "/path/to/file.log": "; 
    echo "Obs.: Last 20 lines of a logfile:
    echo ;
    tail -20 /path/to/file.log;
    echo ;
sleep 5; 
done
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.