Google is committed to advancing racial equity for Black communities. See how.
This page was translated by the Cloud Translation API.
Switch to English

শুভ ব্যবহার

এই আদেশের জন্য বিকল্পগুলির সহায়তা এবং তালিকা দেখতে যে কোনও happy-* কমান্ড সহ -h পতাকা ব্যবহার করুন।

রাষ্ট্র ফাইল

হ্যাপি স্টোরগুলি এবং সাবধানতার সাথে তার টপোলজি স্থিতিকে একটি একক রেকর্ডের সাথে একটি JSON ফাইলে বজায় রাখে। এই স্টেট ফাইলটি ব্যবহার করে, হ্যাপি টপোলজি তৈরি করতে বা সরাতে উপযুক্ত কমান্ডগুলি চালাতে পারে।

ডিফল্ট রাষ্ট্র ফাইলটি ~/.happy_state.json এ অবস্থিত। happy-state আউটপুটে যেমন দেখা যায় তেমন ডিফল্ট রাষ্ট্রের নামও happy :

happy-state

State Name:  happy

সমান্তরাল রাজ্য

শুভ একাধিক সহাবস্থান সমান্তরাল রাজ্যগুলিকে সমর্থন করে। বর্তমান অবস্থা HAPPY_STATE_ID পরিবেশে পরিবর্তনশীল দ্বারা নির্ধারিত হয়। তাহলে HAPPY_STATE_ID পরিবেশে বিদ্যমান নয়, ডিফল্ট স্থিতি মান happy ব্যবহার করা হয়।

হ্যাপি ইনস্টলেশনের সময় HAPPY_STATE_ID হয় না। তাত্ক্ষণিকভাবে অন্য শুভ অবস্থানে স্যুইচ করতে state ব্যতীত অন্য একটি মান সহ একটি তৈরি করুন।

export HAPPY_STATE_ID="sunny"

এখন ভিন্ন রাজ্যে happy-state ফলাফলগুলি পরীক্ষা করা:

happy-state

State Name:  sunny

প্রতিটি রাজ্য তার নিজস্ব ~/.${HAPPY_STATE_ID}_state.json ফাইলে ~/.${HAPPY_STATE_ID}_state.json থাকে। রাজ্যগুলির মধ্যে স্যুইচ করতে, export HAPPY_STATE_ID=" <state-name> " কমান্ডটি আবার চালান।

সমান্তরাল রাজ্যের সাথে আনইনস্টল করুন

আপনি যদি সমান্তরাল হ্যাপি রাজ্যগুলি ব্যবহার করেন এবং আপনি শুভ আনইনস্টল করতে চান তবে প্রতিটি রাষ্ট্রকে সক্রিয় করে হ্যাপি happy-state-delete চালানো নিশ্চিত করুন। এটি নিশ্চিত করে যে হ্যাপি দ্বারা নির্মিত সমস্ত নেটওয়ার্ক নেমস্পেসগুলি লিনাক্স হোস্ট নেটওয়ার্ক কনফিগারেশনকে প্রভাবিত না করে আপনার সিস্টেম থেকে অপসারণ করা হবে।

উদাহরণস্বরূপ, happy এবং sunny দুটি রাজ্য সহ:

export HAPPY_STATE_ID="sunny"
happy-state-delete
export HAPPY_STATE_ID="happy"
happy-state-delete

প্রতিটি সমান্তরাল রাষ্ট্র ফাইলটি প্রয়োজন অনুসারে ম্যানুয়ালি সরান:

rm -f ~/.sunny_state.json
rm -f ~/.sunny_state.json.lock
rm -f ~/.happy_state.json
rm -f ~/.happy_state.json.lock

লগ

হ্যাপি ডিফল্টরূপে syslog লগ প্রেরণ করে। দ্বিতীয় লগ ব্যাকআপ পাঠানো হয় /tmp/${HAPPY_STATE_ID}_debug_log.txt

শুভ লগগুলি দেখতে, পৃথক টার্মিনাল উইন্ডোতে happy-state -l চালান। আপনি যখন হ্যাপি কমান্ডগুলি প্রবেশ করেন, লগগুলি শেল কমান্ডগুলি ব্যাকগ্রাউন্ডে হ্যাপী সমস্যাগুলি দেখায়। আপনি যদি লিনাক্স নেটওয়ার্ক নেমস্পেসে আগ্রহী হন তবে হ্যাপি কীভাবে কাজ করে তা বোঝার এটি একটি ভাল উপায়।

উদাহরণস্বরূপ, happy-node-add node00 একটি হ্যাপি নোড তৈরি করে। এই আদেশের লগ আউটপুট হল:

DEBUG [HappyHost:_namespaceExists():56] Happy: namespace happy000 does not exist
DEBUG [Driver:writeState():365] Happy: writing Happy state to file
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns add happy000
DEBUG [HappyHost:_namespaceExists():56] Happy: namespace happy000 exists
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns exec happy000 ifconfig lo up

সমস্ত Driver:CallCmd() লাইন শেল কমান্ড যা হ্যাপি কল করে। লগের প্রতিটি লাইন বিবেচনা করুন:

# Check to see if the target namespace (happy000) exists
DEBUG [HappyHost:_namespaceExists():56] Happy: namespace happy000 does not exist

# Write the link between node00 and happy000 in ~/.happy_state.json
DEBUG [Driver:writeState():365] Happy: writing Happy state to file

# Create the network namespace for the node
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns add happy000

# Check to see if the target namespace (happy000) exists
DEBUG [HappyHost:_namespaceExists():56] Happy: namespace happy000 exists

# Bring up the loopback interface within the happy000 namespace
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns exec happy000 ifconfig lo up

নমুনা টোপোলজিস

নমুনা টোপোলজিসগুলি উভয় পরীক্ষার জন্য হ্যাপি এবং ওপেন ওয়েভ সংগ্রহস্থলের অন্তর্ভুক্ত। জটিল টোপোলজগুলি তৈরি করতে কমান্ডগুলি শিখতে তাদের ব্যবহার করুন।

টোপোলজগুলি জেএসএন এবং শেল স্ক্রিপ্ট ফর্ম্যাটে রয়েছে।

তাদেরকে JSON

জেএসএন টপোলজি ফাইলগুলি happy-state-load বা weave-state-load কমান্ড ব্যবহার করে লোড করা হয়। যদি টপোলজিতে ওয়েভ অন্তর্ভুক্ত থাকে তবে টপোলজি weave-state-load করার জন্য আপনাকে অবশ্যই weave-state-load ব্যবহার করতে হবে, অন্যথায় ওয়েভ-নির্দিষ্ট কমান্ডগুলি এড়িয়ে যায়।

উদাহরণস্বরূপ, ওয়েভ ছাড়াই একটি টপোলজি:

happy-state-load thread_wifi_ap_internet.json

তাঁতযুক্ত টপোলজি:

weave-state-load three_nodes_on_thread_weave.json

আপনার বর্তমান টপোলজিটি পরবর্তী ব্যবহারের জন্য পৃথক জেএসওএন ফাইল হিসাবে সংরক্ষণ করতে (উদাহরণস্বরূপ, একটি পরীক্ষার কেস স্ক্রিপ্ট ), happy-shell -s ব্যবহার করুন:

happy-shell -s my_topology.json

এটি টপোলজি স্টেট ফাইলটি OME $HOME ডিরেক্টরিতে সংরক্ষণ করে।

শেল স্ক্রিপ্ট

শেল স্ক্রিপ্ট টপোলজি ফাইলগুলিতে সংশ্লিষ্ট JSON ফাইলগুলিতে টপোলজগুলি তৈরি করতে হ্যাপি এবং ওয়েভ কমান্ডের সেট থাকে। ডিফল্টরূপে এই স্ক্রিপ্টগুলির এক্সিকিউটেবল অনুমতি নেই। এগুলি দুটি উপায়ে চালানো যেতে পারে:

bash কমান্ড ব্যবহার করে:

bash thread_wifi_ap_internet.sh

এক্সিকিউটেবল অনুমতি প্রয়োগ করে:

chmod +x thread_wifi_ap_internet.sh
./thread_wifi_ap_internet.sh

কনফিগারেশন

শুভ তিনটি কনফিগারেশন ফাইল রয়েছে:

কনফিগারেশন ফাইল বিবরণ
~/.happy_conf.json ব্যক্তিগত বা প্লাগ-ইন ব্যবহারের জন্য কনফিগারেশন ভেরিয়েবল। happy-configuration কমান্ড ব্যবহার করে এই মানগুলি সেট করুন।
<path-to-happy> /happy/conf/main_config.json প্রাথমিক শুভ কনফিগারেশন ভেরিয়েবল।
<path-to-happy> /happy/conf/log_config.json লগ কনফিগারেশন।

কনফিগারেশন ভেরিয়েবল যুক্ত করুন

আমরা আপনাকে হ্যাপির প্রয়োজনীয় নির্দিষ্ট ডিফল্ট ডিফল্টের বাইরে কোনও ব্যক্তিগত বা প্লাগ-ইন ভেরিয়েবল সেট করতে আপনাকে happy-configuration কমান্ডটি ব্যবহার করার পরামর্শ দিচ্ছি।

উদাহরণস্বরূপ, পরীক্ষার স্ক্রিপ্টগুলির জন্য ওয়েভ test-apps ডিরেক্টরিটি কোথায় পাওয়া যাবে তা জানার জন্য weave_path ভেরিয়েবলটি সেট করুন:

happy-configuration weave_path <path-to-openweave-core>/build/x86_64-unknown-linux-gnu/src/test-apps

Happy ~/.happy_conf.json এ হ্যাপি স্টোর কনফিগারেশন ভেরিয়েবল।

নোডগুলিতে প্রক্রিয়াগুলি

হ্যাপি সিমুলেটেড নোডের মধ্যে প্রক্রিয়াগুলি শুরু এবং বন্ধ করার জন্য কমান্ড সরবরাহ করে।

একটি প্রক্রিয়া শুরু করতে:

happy-process-start <node-name> <custom-process-name> <command>

উদাহরণস্বরূপ, থ্রেডডনড নামের নোডে অবিচ্ছিন্নভাবে একটি পিং চালানো:

happy-process-start ThreadNode ContinuousPing ping 8.8.8.8

উপরের উদাহরণে কন্টিনিউয়াসপিং হ'ল প্রক্রিয়াটি পরিচালনা করতে প্রসেসের ব্যবহারকারীর সংজ্ঞায়িত নাম। প্রক্রিয়া সম্পাদন স্থগিত করতে happy-process-wait ওয়েট এবং প্রক্রিয়াটি হত্যার জন্য happy-process-stop

প্রক্রিয়া আউটপুট /tmp । উদাহরণস্বরূপ, কন্টিনিউয়াসপিং প্রক্রিয়া শুরু করার পরে /tmp ডিরেক্টরিটি পরীক্ষা করুন:

ls /tmp/happy*
/tmp/happy_018691_1524087014.192197_ContinuousPing.out

এই .out ফাইলটিতে কন্টিনিউসপিং প্রক্রিয়াটির আউটপুট থাকে।

এর ব্যবহার sudo

হ্যাপি লিনাক্স কার্নেল দ্বারা নিয়ন্ত্রিত নেটওয়ার্ক কনফিগারেশন পরিবর্তন করে। যেহেতু শুধুমাত্র root কার্নেল কনফিগারেশন পরিবর্তন করতে পারে তাই শুভ আপনাকে অপারেশন চলাকালীন sudo পাসওয়ার্ড লিখতে অনুরোধ করে।

শুভ sudo কল করতে $SUDO সিস্টেম পরিবেশের পরিবর্তনশীল sudo । যদি $SUDO সংজ্ঞায়িত না করা হয় তবে শুভ একটি স্বাভাবিক sudo কল করেন।

পাইথন স্ক্রিপ্টিং

ইনস্টলেশনের পরে, হ্যাপি পাইথন প্যাকেজগুলি নিম্নলিখিত import বিবৃতিটি ব্যবহার করে পাইথন পরিবেশে আমদানি করা যেতে পারে:

import happy

/happy প্রাপ্ত পৃথক কমান্ড মডিউলগুলি নীচে আমদানি করা হয়:

import happy.HappyNodeAdd

মডিউল বিকল্পগুলি পুনরুদ্ধার করতে, option() কল করুন option() ফাংশন। উদাহরণস্বরূপ, HappyNodeAdd মডিউল বিকল্পগুলি পুনরুদ্ধার করতে:

module options
import happy.HappyNodeAdd
options = happy.HappyNodeAdd.option()