Bagaimana saya bisa menggunakan output dari perintah di cfengine3


8

Saya ingin mendaftar konten direktori dan menggunakan hasilnya di tempat lain:

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.
 }

Jawaban:


12
bundle agent test
{

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

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

Lihat https://cfengine.com/manuals/cf3-solutions#Execresult-example


Waspadalah! Perintah ini akan dijalankan beberapa kali per kali cf-agent. Lihat dokumen tentang pemesanan normal dan catatan di bagian bawah dokumen untukexecresult() . Untuk lsitu mungkin tidak penting, tetapi untuk perintah yang lebih mahal tentu akan begitu.
Wildcard

4

Pada versi 3.3.0, Anda dapat menggunakan fungsi lsdir () sebagai gantinya.

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

baca lebih lanjut: https://cfengine.com/manuals/cf3-Referensi#Fungsi-lsdir


Ini sebenarnya lebih baik untuk lsuse case karena menggunakan caching fungsi internal CFEngine dan tidak memanggil perintah eksternal beberapa kali per run. Tentu saja execresult()lebih umum.
Wildcard
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.