Solaris 5.10でフォルダを更新するときにスクリプトを起動するにはどうすればよいですか?

Solaris 5.10でフォルダを更新するときにスクリプトを起動するにはどうすればよいですか?

ファイルがフォルダに配置されるとすぐに、ファイルを削除するスクリプトを作成しようとしています。これを行う1つの方法は、cronスケジューラのスクリプトでrsyncを実行することです。

このアプローチの問題はシステムオーバーヘッドです。毎秒実行することはできません。一定の間隔を置いて実行すると、その間隔中にファイルが脆弱になります(送信者がアクセスできる可能性があります)。要件は、ファイルが到着するとすぐに消えることです。

stackoverflowをチェックして見つけました。インクロン注文する。ただし、これはLinuxでのみ機能し、Solarisでは機能しません。

答え1

  • Solaris 10では試してみることができます賭けるSolarisポートがありますここ

  • Solaris 11以降は、基本的でより効率的な機能を提供します。指す(ファイルイベント通知)。

何らかの理由で、Gaminのポーリング特性がお客様の要件に合わずにSolaris 10を引き続き使用したい場合は、ナビゲートできる少なくともいくつかの選択肢があります。

  • BSM監査を有効にし、FCイベント(ファイル生成)を追跡します。
  • 監視するディレクトリにファイルが作成されたら、Dtrace を使用して応答します。

後者の場合は、dtraceスクリプト自体のディレクトリからターゲットファイルを移動することもできます。

答え2

あなたが明示的にSolaris 10に言及したことを知っていますが、Solaris 11を使用している場合は、次のものを使用できます。ウォッチディレクトリSolaris ファイルイベント通知に基づくコマンドです。したがって、基本的に、ある種のポーリングに基づく他のソリューションと比較して、システムオーバーヘッドはほぼ0%に近いです。これは、フォルダ内のファイルイベントが発生するまで永遠に待機するか、タイムアウトのある引数を使用するブロックコマンドです。最も一般的には、新しいファイルが到着するのを待つために使用されます。

本当にSolaris 10を使うことにこだわったら、私はどのような方法も知りません。いいえ何らかの方法で世論調査に基づいています。

また、v7以降、Javaではファイルシステム監視のための組み込みメカニズム。このソリューションの利点は、関連プラットフォームに最も効果的な方法を自動的に活用することです。つまり、アプリケーションがSolaris 10で実行され(おそらくいくつかのデフォルトのポーリングメカニズムを使用するJavaを介して)Solaris 11に移行すると、同じアプリケーションがネイティブのSolarisファイルイベント通知メカニズムをシームレスに利用できるようになります。

関連情報