1

Cron ジョブとしてスケジュールできるシェル スクリプトが必要です。ディレクトリを指し、各 PHP ファイルを再帰的にチェックして、過去 24 時間に変更されたかどうかを確認し、それをログ ファイルに書き込み、ログ ファイルを毎晩電子メールで送信します。

したがって、スクリプトは次のことを行います。

  1. ディレクトリを再帰的にスキャンして、24 時間以内に変更されたすべての php ファイル (home/user/httpdocs) を検索します。
  2. それらをファイルに記録します (/tmp/diff-2012-05-18.log)
  3. ログファイルを ane-mail アドレスに電子メールで送信 -

自動化する前に簡単にテストできるものにする必要があります。

これを効率的に行う方法についてのアイデアはありますが、その一部を実行する方法がありますが、サーバーに負担がかかります。-

4

1 に答える 1

2

変更されたファイル部分の場合:

find /path/to/dir -iname '*php' -mtime -1 > /tmp/diff-$(date +%Y-%m-%d).log

それで:

mail user@example.com < /tmp/diff-$(date +%Y-%m-%d).log

$OUTPUT最初のコマンドに時間がかかりすぎて翌日に終了する場合に備えて、最初に正しい日付で変数を作成するのが理想的です。したがって、すべてをまとめると、次のようになります。

OUTPUT=/tmp/diff-$(date +%Y-%m-%d).log
find /path/to/dir -iname '*php' -mtime -1 > $OUTPUT
mail user@example.com < $OUTPUT

または、もう少し洗練されたものになりたい場合や、1 つのライナーを目指している場合はtee、リストをファイルに保存すると同時にメールで送信することができます (一種の):

find /path/to/dir -iname '*php' -mtime -1 | tee /tmp/diff-$(date +%Y-%m-%d).log | mail user@example.com
于 2012-05-18T14:05:01.527 に答える