Shell: ディレクトリのファイルが変更されたことを確認する

Shell: ディレクトリのファイルが変更されたことを確認する

私はそれを使用していますイノティファイツールディレクトリ内のファイルが変更されたかどうかを監視するには、次の手順を実行します。

while inotifywait -e modify /etc/checking/; do
    curl...
done

それにもかかわらず、modify監視中のファイルや監視ディレクトリのファイルに注意してください。に書かれた、書かれた内容が同じかどうかにかかわらず。

新しいファイルを送信する前に、curl以前に見たファイルの内容が実際に変更されたことを確認したいと思います。

md5sum悪用するコマンドを使うつもりです。

  1. md5sumしたがって、各ファイルの出力を配列に保存する必要があります。どんなアイデアがありますか?
  2. イベントが発生した場合、modify前のイベントとmd5sum比較

私はそれを使用しています#!/usr/bin/env sh

どんなアイデアがありますか?

ベストアンサー1

/etc/checking特定のディレクトリ()内のすべてのファイルを再帰的にチェックサムし、そのファイルにチェックサムコードを書き込むことができます。その後、修正を検索するには、リストを実行して比較します。

find /etc/checking -type f -exec md5sum {} \; > checklist.chk

checklist.chkは次のようになります。

bda7d4479b770eb055287d265b62c056  /etc/checklist/file001
83087902bc3bfea5cf8594c7d3f5c350  /etc/checklist/file002
7af7a423d53450e75fc228d6163ae9e6  /etc/checklist/file003

次にそれをマニフェストと比較します。

md5sum -c checklist.chk

次のように出力されます。

/etc/checklist/file001: OK
/etc/checklist/file002: OK
/etc/checklist/file003: OK

たとえば、cronjobに簡単に追加して毎日実行できます。


同じコマンドを使用して、毎回新しいマニフェストを出力して実行することもできます。違い2つのリスト間のコマンド。

おすすめ記事