cfengine3でコマンドの出力を使用する方法


8

ディレクトリの内容を一覧表示し、その結果を別の場所で使用したい:

bundle agent test
{

   commands:
      "ls /tmp/test/";

    reports:
    ubuntu::
       "print output here for example";  
# or add it to a variable which is how I really want to use it.
 }

回答:


12
bundle agent test
{

    vars:
        "my_result" string => execresult("/bin/ls /tmp/test/","noshell");

    reports:
        ubuntu::
            "Output is : $(my_result)";  
}

https://cfengine.com/manuals/cf3-solutions#Execresult-exampleを参照してください


注意してください!このコマンドは、実行ごとに数回cf-agent実行されます。通常の注文に関するドキュメントexecresult()、ドキュメントの下部にあるメモを参照してください。以下のためにls、それは重要ではないかもしれないが、より高価なコマンドのために、それは確かだろう。
ワイルドカード

4

バージョン3.3.0以降、代わりにlsdir()関数を使用できます。

vars:
  "result" slist => lsdir("/tmp/test", ".*", "false");

続きを読む:https : //cfengine.com/manuals/cf3-Reference#Function-lsdir


これはls、CFEngineの内部関数のキャッシュを利用し、実行ごとに外部コマンドを複数回呼び出さないため、実際にはユースケースに適しています。もちろん、execresult()より一般的です。
ワイルドカード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.