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.