আমি সিএফএনজিনি 3-তে একটি কমান্ডের আউটপুট কীভাবে ব্যবহার করতে পারি


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/manouts/cf3-solutions#Execresult-example দেখুন


সতর্ক থাকুন! এই কমান্ডটি প্রতি cf-agentরান কয়েকবার চালানো হবে। উপর ডক্স দেখুন স্বাভাবিক ক্রম নীচের অংশে এবং নোট এর জন্য দস্তাবেজexecresult() । জন্য lsএটা গুরুত্বপূর্ণ না হতে পারে, কিন্তু আরো ব্যয়বহুল কমান্ডের জন্য এটা অবশ্যই হতে হবে।
— ওয়াইল্ডকার্ড

4

সংস্করণ 3.3.0 হিসাবে, আপনি পরিবর্তে lsdir () ফাংশন ব্যবহার করতে পারেন।

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

আরও পড়ুন: https://cfengine.com/manouts/cf3- রেফারেন্স#Function-lsdir


এটি lsব্যবহারের ক্ষেত্রে প্রকৃতপক্ষে ভাল কারণ এটি সিএফইঙ্গিনের অভ্যন্তরীণ ফাংশন ক্যাচিং ব্যবহার করে এবং প্রতি রান বহিরাগত আদেশকে একাধিকবার কল করে না। অবশ্যই, execresult()আরও সাধারণ।
— ওয়াইল্ডকার্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.