특정 기간 동안 'tail -f' [반복]

특정 기간 동안 'tail -f' [반복]

로그 파일에 대해 실행 해야 tail -f하지만 특정 시간(예: 20초) 동안만 실행한 다음 종료해야 합니다. 이를 달성하는 우아한 방법은 무엇입니까?

답변1

GNU 시간 초과 사용:

timeout 20 tail -f /path/to/file

답변2

완벽을 기하기 위해 그렇지 않은 경우 timeout다음을 수행할 수 있습니다.

#!/bin/sh
tail -f /var/log/syslog &
me=$!
trap "kill $me" INT TERM HUP QUIT EXIT
sleep 20

trap줄은 스크립트 또는 상위 셸이 종료될 때(스크립트의 끝에 도달(EXIT), Ctrl-C(INT), SIGTERM 전송 kill, 셸 로그아웃(HUP) 등)), 스크립트 또는 상위 쉘이 tail종료되었습니다.

관련 정보