1

oneshot監視対象のディレクトリに含まれるログ ファイルのインデックスを明示的に再作成する Splunk のコマンドを自動化する powershell スクリプトを作成しようとしています。日付の範囲を指定すると、スクリプトはログ ファイルが保存されているディレクトリを走査し、oneshotその日付を対象とするファイルごとに 1 回実行します (通常、1 日あたり 50 から 110 程度です)。私は決してあなたが「パワーシェルの第一人者」と呼ぶものではありません。それが私をここに連れてきた理由です。

よく見ると、呼び出されるたびに個別の cmd.exe インスタンスInvoke-Expression を開始しているようです。これにより、splunkd デーモンがクラッシュするか、cmd.exe がクラッシュします。

そうは言っても、使用するより良い代替手段はありInvoke-Expressionますか? 私のスクリプトは、呼び出された各式が完了するのを待ってから次の式を開始するように見えず、サーバーに悪影響を及ぼしています。Invoke-Expression外部のコンソール以外のアプリケーションを呼び出すために使用すると、これが発生することを読みました。この場合、コマンドを実行するために splunk.exe を呼び出しているので、これは理にかなっています。

を使用する代わりにスクリプティング ホストを利用することを検討していますInvoke-Expressionが、最初にここ StackOverflow のプロにいくつかの潜在的な代替案を尋ねたかったのです :)

そうは言っても、過去に同様の問題に遭遇した人はいますか?Invoke-Expressionあるいは、仕事をするだけでなく、より安定した実行を提供する代わりに使用できる他の PowerShell ツールはありますか? どんな助け/提案も大歓迎です!

4

2 に答える 2

1

Splunk CLI を使用してコマンドから「ワンショット」を実行しようとする代わりに、Splunk Powershell Resource Kit を見ましたか?

https://github.com/splunk/splunk-reskit-powershell

于 2012-10-29T23:58:57.753 に答える
1

次のアプローチを試してください:

& cmd /c "full path to splunk.exe"
于 2012-10-29T14:55:50.123 に答える