![특정 기간 동안 'tail -f' [반복]](https://linux55.com/image/11034/%ED%8A%B9%EC%A0%95%20%EA%B8%B0%EA%B0%84%20%EB%8F%99%EC%95%88%20'tail%20-f'%20%5B%EB%B0%98%EB%B3%B5%5D.png)
로그 파일에 대해 실행 해야 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
종료되었습니다.