0

重複の可能性:
Linuxでファイルシステムの変更を監視する最良の方法

あなたの助けが必要です。Linux サーバーで SSH を使用して行われたアクティビティをログに記録するにはどうすればよいですか? ファイルまたはディレクトリの作成、ファイルまたはディレクトリの削除、特定のパスのファイルまたはディレクトリの名前変更などのアクティビティ。bash、python、またはphpスクリプト、またはLinuxに特定のパスまたはフォルダーで行われたすべてのアクティビティを監視できるオプションがある場合は、何らかの解決策が必要です。これらのログを同期目的で使用する必要があります。

では、シナリオ全体を説明しましょう。すべてのファイルとフォルダーを共有するために Samba を使用している同期ツールに取り組んでおり、これらのファイルをネットワーク経由で同期する必要があります。ファイルまたはフォルダーの作成、ファイルとフォルダーの削除、ファイルまたはフォルダーの名前変更など、クライアントによって行われたアクティビティを監視するためにsambaログをgrepします。これらのログを同期ツールと正常に動作させるために使用しています。しかし、samba を使用して変更が行われた場合にのみログを取得しています。変更が SSH を使用して行われた場合、それらのアクティビティはログに記録されず、同期されません。そのため、特定のパス (例: /mnt/test) に対して SSH を使用して行われた変更のログを grep する必要があります - create delete や rename などのテスト フォルダーで行われた変更。

4

1 に答える 1

0

ここで何が起こっているのかを理解しているので、これです。

複数のユーザーとファイルシステムに直接アクセスできる多数のユーザー (SSH 経由でログオン) を持つファイルシステムをエクスポートする Samba サーバーがあります。そして、このファイルシステムを別の場所に複製する必要があります。

TS は、複製を実行するためのツールを開発しています。

ここには少なくとも 2 つのオプションがあります。

  1. これを行うためのより一般的な方法はrsync、2 つの場所の間を一定の間隔で走ることです。したがって、レプリカは常に一貫性があるとは限りませんが、それは簡単で、システムは分断耐性があり、利用可能です。つまり、このメソッドは「CAP」定理から「A」と「P」を選択します。

  2. Dropbox のようなクラウド ストレージとインスタント レプリケーションの人気に触発されたもう 1 つの方法は、ファイル システムを監視することです。inotifyこれはまたはで実現できますfam

    のインターフェイスはinotify、Perl、Python、PHP など、ほとんどのスクリプト言語で利用できます。これは可用性と一貫性をトレードオフします。つまり、大きなファイルがレプリケートされるまで、反対側ではアクセスできません。

    のインターフェイスFAMは、PHP およびおそらく他の言語で利用できます。さまざまなファイルシステム監視 API の説明については、リンクされた質問を参照してください。

最初のオプションは基本的にワンライナーです。2 番目のオプションも、それほど難しいものではありません (例として Dropbox デーモンのソースを見てください)。

注:レプリケーションは、Serverfault.com で繰り返されるトピックです。

于 2013-01-19T17:45:47.550 に答える