আমি সিএফএনজিনি 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.