tail 명령을 자동으로 끝내는 방법

tail 명령을 자동으로 끝내는 방법

tail -q -f -n +1 [file name]내 응용 프로그램에서는 파일(동적으로 증가하는 파일)의 현재 데이터를 읽고 끝까지 새 청크를 계속 읽는 데 사용합니다 . 그러나 명령은 종료되지 않습니다. 백그라운드에서 계속 살아있습니다.

파일에 추가한 후 종료하려면 어떻게 해야 합니까?

답변1

요점 tail -f은 새 데이터가 입력 파일이나 스트림에 나타날 때까지 영원히 기다린다는 것입니다( tail -F입력 파일이 회전되었음을 자동으로 감지하고 파일 이름을 다시 열 수도 있습니다).

그보다 더 멋진 것을 원한다면 직접 작성해야 합니다. 시작 후 X초를 종료하는 것이 필요한 경우 tail래퍼 스크립트나 함수를 사용하여 coreutils tail에서 실행할 수 있습니다.timeout

좀 더 복잡한 것이 필요한 경우(예: 특정 패턴이 일치할 때 종료하거나 X초 후에 새 텍스트가 표시되지 않거나 다른 프로그램이 종료되거나 시스템 프로세스 목록에 더 이상 나타나지 않는 경우), 고유한 버전을 작성할 수 있습니다 tail. 예, Perl을 사용하여파일::꼬리기준 치수. 이 모듈은 로그 파일을 모니터링하고 특정 패턴이 발견되면 특정 조치를 취하는 모니터링 스크립트를 작성하는 데 유용합니다.

다른 언어에도 비슷한 기능이 있습니다(예: Python의 경우 참조).tail과 유사하게 파일의 마지막 n줄을 가져옵니다.). Bash에서 무언가를 해킹할 수도 있지만 그렇게 하면 결과가 좋지 않고 더 많은 작업이 필요할 것이 거의 확실합니다.

관련 정보