tail -f 출력 전에 터미널 창 지우기

tail -f 출력 전에 터미널 창 지우기

cron을 사용하여 3분마다 다음 스크립트를 실행합니다.

#!/bin/bash
cd ~/Documents/Fetch/
wget remotehost/data.txt --output-document=tmp
cp tmp data.txt
rm tmp

자체 생성된 PHP 로그를 가져옵니다.

파일에 변경 사항이 있는지 확인하고 싶습니다(시간 범위는 3분). 두 번째 화면의 터미널에서 다음을 실행 중입니다.tail -f ~/Documents/Fetch/

이제 data.txt 파일이 변경되지 않으면 tail은 동일한 로그를 계속해서 출력하고 tail: /home/midas/Documents/Fetch/data.txt: file truncated.

파일이 잘릴 때 출력이 표시되기 전에 터미널 화면이 완전히 표시되도록 지시하는 방법이 있습니까 tail?clear

나는 기본적으로 이런 일이 일어나기를 원합니다:

  1. tail은 초기 내용을 인쇄합니다.
  2. tail은 파일이 잘렸다는 것을 알아차립니다. >clear
  3. tail은 파일의 잘린 내용을 인쇄합니다.

페이지 man tail에서 이 옵션을 제공하지 않는 것 같습니다.

누구든지 이것에 대한 경험이 있습니까?

꼬리 자체의 목적을 약간 벗어난다는 것을 알고 있지만 어떤 상황에서는 유용할 것이라고 상상할 수 있습니다.

답변1

콘텐츠가 상대적으로 짧은 경우(터미널에 있는 줄 수에 관계없이 하나의 터미널 화면 크기보다 작음) tail반복적으로 실행할 수 있습니다.

watch -n 30 'tail /path/to/filename 2>&1'

30초마다 실행됩니다 tail. 다른 간격을 사용하고 싶을 수도 있습니다(기본값은 2초이지만 생성 단위가 3분이므로 낮게 설정해도 별 의미가 없습니다).

미묘한 변경의 경우 -d플래그를 사용하여 차이점을 강조할 수도 있습니다.

관련 정보