Bashスクリプトは昨日変更されたファイルを検出し、サイズが特定のしきい値を超えていることを確認します。

Bashスクリプトは昨日変更されたファイルを検出し、サイズが特定のしきい値を超えていることを確認します。

私はstatディレクトリ内のすべてのファイルをインポートし、昨日生成された特定のファイルを見つけて、そのファイルが特定のサイズより大きいかどうかを知らせるスクリプトを作成しています。

したがって、デフォルトでは、.gzタイプのファイル(少なくとも24時間前に最後に変更しなければならない)のファイルを見つけて、サイズが特定の数(4KBなど)未満でないことを確認するにはこれが必要です。 。その場合、4 KB 未満の場合は「失敗」または同様の内容をエコーする必要があり、そのしきい値を超える場合は「成功」または同様の内容をエコーする必要があります。

最終的に失敗した場合、または成功した場合はメールを送信させていただきます。

これまでにすべてのファイルを一覧表示し、過去24時間に修正されたファイルを見つけましたが、初心者であるため、この時点で迷子になりました。

for file in /*; do
  stat $file
done
find /* -mtime -1 -print

今はコンピュータ全体を実行していますが、最終的には特定のディレクトリで実行されます。

ベストアンサー1

man findfindを使用して、サイズ()を含むすべてを見つけることができます。

 -size n[cwbkMG]
          File uses n units of space.  The following suffixes can be used:
          `b'    for  512-byte blocks (this is the default if no suffix is used)
          `c'    for bytes
          `w'    for two-byte words
          `k'    for Kilobytes (units of 1024 bytes)
          `M'    for Megabytes (units of 1048576 bytes)
          `G'    for Gigabytes (units of 1073741824 bytes)

だからあなたはこれを行うことができます:

find . -name "*.gz" -size -4k -mtime -1 -printf 'Failure %p\n'
find . -name "*.gz" -size -4k -mtime +1 -printf 'Success %p\n'

おすすめ記事