GNU/Linux >> Linux の 問題 >  >> Linux

ディレクトリの内容が更新されたときにコマンドを実行するにはどうすればよいですか?

Aというディレクトリがあります 他の人によって内容が頻繁に変更される。

個人ディレクトリを作成しましたB Aにあったすべてのファイルをここに保存します 。

現在、私はたまにrsyncを実行しています Aからバックアップするファイルを取得するには Bへ 。ただし、一部のファイルがAに追加される可能性があります。 、次にAから削除されます それらをBにコピーする機会を得る前に 。

これを防ぐための最良の方法は何ですか?理想的には、Aのコンテンツが含まれるたびに、現在のバックアップスクリプトを実行するようにします。 変更されます。

承認された回答:

inotify-toolsがインストールされている場合は、inotifywaitを使用できます。 ファイルまたはディレクトリが次の場所に書き込まれた場合にアクションをトリガーするには:

#!/bin/sh
dir1=/path/to/A/
while inotifywait -qqre modify "$dir1"; do
    /run/backup/to/B 
done

ここで、-qq スイッチは完全に無音です、-r 再帰的(必要な場合)および-e 監視するイベントです。この場合はmodifyman inotifywaitから :

変更
監視対象ファイルまたは監視対象ディレクトリ内のファイルが書き込まれました。


Linux
  1. 変数に格納されているコマンドを実行するにはどうすればよいですか?

  2. コマンドラインを使用してディレクトリ内のファイルの数を取得するにはどうすればよいですか?

  3. ディレクトリのコンテンツのMd5合計を1つの合計として取得するにはどうすればよいですか?

  1. ファイルまたはディレクトリが変更されたときにシェルスクリプトを実行する方法は?

  2. OS X のホーム ディレクトリで GNU screen が起動しないようにするにはどうすればよいですか?

  3. Linux:特定のディレクトリでコマンドを実行する方法

  1. [Linux]:「tar」シェルコマンドを使用するときにディレクトリを除外する方法

  2. Linuxでディレクトリサイズを取得する方法

  3. Linuxでディレクトリの内容が変更されたときにスクリプトを自動的に実行する方法は?