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分)。 2番目の画面の端末で、次を実行しています。tail -f ~/Documents/Fetch/

data.txtファイルが変更されない場合、tailは同じログを出力し続けますtail: /home/midas/Documents/Fetch/data.txt: file truncated

ファイルが切り捨てられたときに出力が表示される前に端末画面が完全に表示されるように指示する方法はありますかtailclear

私は基本的にこれが起こりたいと思います:

  1. tail は初期コンテンツを印刷します。
  2. tailはファイルが切り捨てられたことに気づきます。 >clear
  3. tail はファイルの切り捨て内容を印刷します。

ページman tailでこのオプションを提供していないようです。

誰でもこれの経験がありますか?

尾自体の目的を少し外れていることを知っていますが、状況によっては役に立つと想像できます。

ベストアンサー1

コンテンツが比較的短い場合(端末の行数に関係なく、1つの端末画面サイズより小さい)、tail繰り返し実行できます。

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

30秒ごとに実行されますtail。別の間隔を使用したい場合があります(デフォルトは2秒ですが、生成単位は3分なので低く設定してもあまり意味がありません)。

微妙な変更の場合、-dフラグを使用して違いを強調することもできます。

おすすめ記事