ファイルサイズが正しいことを確認するBashスクリプト

ファイルサイズが正しいことを確認するBashスクリプト

私はこのbashスクリプトスケジュールを作成し、ディレクトリ内の特定のサイズ以下の特定の種類のファイル(「.gz」で終わるファイル)(最後の修正:24時間前)を検出したときに電子メールを送信しようとしています。現在持っています。私はコンピュータ全体で実行しています。 (私は10KBに設定しました。)

とにかく、ちょうど電子メールを送信します。ファイルがしきい値未満であることを実際に検出した場合にのみ電子メールを送信したいです。誰かをチェックし、私がどこで問題を経験しているかを教えてください。これは私の最初の真剣なスクリプトの1つなので、語彙は少し少なくなります!

1)このスクリプトはディレクトリ内の「.gz」で終わり、過去24時間に変更されたすべてのファイルを見つけます。

2)これらのファイルを調べて、サイズが特定のしきい値(10KBなど)を超えていることを確認します。

3)その場合は何もしませんが、基準値未満の場合は上記のEメールアドレスにEメールが送信されます。

#!/bin/bash
for file in /*; do
stat $file
    FAILURE= find . -name "*.gz" -size -10k -mtime -1 -printf 'Failure %p\n'
done
if $FAILURE
then
    echo "The backup test has failed!" | mail -s "BACKUP FAILURE" [email protected]
fi

ベストアンサー1

以下は少し変更されたスクリプトです。

#!/bin/bash
if files=$(find . -name "*.gz" -size -10k -mtime -1 -print) ; then
   echo "The backup test has failed!\n$files" | mail -s "BACKUP FAILURE"   [email protected]
fi

暗黙的なループがあるため、forループに入れる必要はありません。探す注文する。

まだこれを理解していない場合は、使用できるデバッグ技術の1つは、上記のコマンドのいくつかを実行してテストすることです。

しかし、それも一つあります。バッシュデバッガ

おすすめ記事