रिबूट के बिना 70-लगातार-net.rules को कैसे पुन: उत्पन्न करें?


14

/etc/udev/rules.d/70-persistent-net.rulesरिबूट के दौरान, अगर यह मौजूद नहीं है, तो फ़ाइल udv के साथ एक लिनक्स सिस्टम पर ऑटो-जेनरेट होती है। लेकिन मैं यह जानना चाहूंगा कि सर्वर को रिबूट किए बिना यह नियम फ़ाइल (कमांड के साथ) कैसे बनाई जाए।

मैं थोड़ी देर के लिए चारों ओर घूम रहा था और पाया कि नियम फ़ाइल इस स्क्रिप्ट द्वारा बनाई गई है:

/lib/udev/write_net_rules

हालांकि, इस स्क्रिप्ट को कमांड लाइन से चलाना असंभव है, क्योंकि (मुझे लगता है) यह udv द्वारा शुरू करना चाहता है, कुछ पर्यावरण चर के साथ ठीक से सेट किया गया है। इसे मैन्युअल रूप से शुरू करने से त्रुटि संदेश "लापता $ इंटरफ़ेस" होता है। यहां तक ​​कि अगर मैं स्क्रिप्ट के शुरू होने से पहले env वेरिएबल INTERFACE = eth0 को सेट करता हूं, तब भी यह "मिसिंग वैलिड मैच" को त्रुटि देता है। उल्लेख नहीं करने के लिए मेरे पास दो इंटरफेस ( eth0और eth1) हैं और मैं चाहता हूं कि नियमों की फाइल दोनों के लिए उत्पन्न हो।

मैं भी इस तरह से udev घटनाओं को ट्रिगर करने के लिए सोच रहा था, उम्मीद है कि यह udev से ही स्क्रिप्ट शुरू कर देगा, लेकिन कुछ भी नहीं बदलता है:

udevadm trigger --type=devices --action=change

तो, क्या किसी को पता है कि /etc/udev/rules.d/70-persistent-net.rulesरिबूट के बिना फाइल में लगातार शुद्ध नियमों को कैसे पुनर्जीवित किया जाए ?


आपका वितरण क्या है? यह किस प्रकार की init प्रणाली का उपयोग करता है?
माईस

1
मैं कहूंगा कि अप्रासंगिक है। मैं eUdev और sysvinit के साथ Slackware का उपयोग कर रहा हूं। मैं स्टार्टअप स्क्रिप्ट की जांच कर रहा था ताकि यह पता लगाया जा सके कि कौन सी फाइल निष्पादित की गई है, जो नियम फ़ाइल को उत्पन्न करती है, लेकिन केवल udvadm ट्रिगर पाया गया, एक टिप्पणी के साथ कि यह लगातार नियम बनाने के लिए कमांड है, लेकिन किसी तरह यह केवल रिबूट पर काम करता है, नहीं प्रभाव अगर मैं इसे मैन्युअल रूप से चलाता हूं।
टॉमस एम

1
यह प्रासंगिक हो सकता है क्योंकि मैं, आर्क पर, 70-persistent-net.rulesन तो /lib/udev/write_net_rulesस्क्रिप्ट है। इसलिए, मैं जाँच नहीं कर सकता, लेकिन संभवत: $INTERFACEचर स्क्रिप्ट में ही सेट किया गया है। ज्यादातर शायद इसे एक तर्क के रूप में पारित किया जाता है। क्या आप हमें स्क्रिप्ट की सामग्री दिखा सकते हैं?
terdon

स्क्रिप्ट बस $INTERFACEचर का उपयोग करता है। केवल उपयोग किए जाने वाले बहुत अधिक चर हैं, कभी घोषित नहीं किए जाते हैं। ऐसा इसलिए है क्योंकि यह udev द्वारा कहा जाता है, और udev बूट पर स्क्रिप्ट चलाने से पहले सभी env चर सेट करता है।
टॉमस एम

क्या आपको वास्तव में यह जानने की आवश्यकता है कि इसे कैसे पुनर्जीवित किया जाए, या आप नई वास्तविकता को प्रतिबिंबित करने के लिए फ़ाइल को केवल संपादित कर सकते हैं?
14

जवाबों:


5

मैन पेज के अनुसार के लिए --action=changeडिफ़ॉल्ट मान है udevadm

   -c, --action=ACTION
       Type of event to be triggered. The default value is change.

इसलिए आप --action=addइसके बजाय बेहतर प्रयास करें । यह मदद करनी चाहिए:

/sbin/udevadm trigger --type=devices --action=add

intel_rapl: कोई वैध rapl डोमेन पैकेज 0 में पाया
Tiina

1

उबंटू सर्वर में 16.04LTS 70-परसेंट-नेट.ट्रूल्स मौजूद नहीं है।

मेरे द्वारा चलाए गए सभी:

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

फिर फ़ाइल का उपयोग करके बनाएँ

sudo vi /etc/systemd/network/10-internet.link

और निम्नलिखित जोड़ें

[Match] 
Path=pci-0000:(your device mac address)

[Link] 
Name=eth0 (or whatever you want to name it)

:wq फ़ाइल को बचाने के लिए

फिर रिबूट और अपने / etc / नेटवर्क / इंटरफेस फ़ाइल को समायोजित करें। फिर दोबारा रिबूट करें।


9
सवाल यह है कि " रिबूट के बिना 70-लगातार-net.rules को कैसे पुनर्जीवित किया जाए ? " आपके जवाब में दो रिबूट शामिल हैं। यह सवाल का जवाब कैसे है?
जी-मैन '

0

मुझे भी यही समस्या थी, लेकिन मैंने देखा कि मैं अभी भी ip addrसूची में इंटरफेस देख सकता हूं । मैंने निम्नलिखित का उपयोग किया (रूट के रूप में):

# ip addr # to get my mac addresses
# export INTERFACE=eth0; export MATCHADDR="xx:xx:xx:xx:xx:xx"; /lib/udev/write_net_rules
# replace the 00's with the real mac addr

प्रत्येक इंटरफ़ेस के लिए दोहराएँ। यह मेरी फ़ाइल को "पुनर्प्राप्त" करने के लिए उपयोग किया गया था। (नोट: एक आह्वान सभी इंटरफेस को सूचीबद्ध करेगा + एक मिलान के लिए नाम बदलें, इसलिए मैं आपको एक आह्वान के बाद आउटपुट फ़ाइल को देखने की सलाह देता हूं)

OS और वर्तमान UDEV कार्यान्वयन और समर्थन स्क्रिप्ट के बीच निश्चित रूप से अंतर हैं। ध्यान दें, मैं CentOS 6.8 का उपयोग कर रहा था जब मैंने इसे सफलतापूर्वक किया।

क्रेडिट - मैंने ज्यादातर इस साइट को संदर्भित किया। नीचे कुछ सूत्र दिए गए हैं जो स्क्रिप्ट को संशोधित करने के बारे में बात करते हैं, लेकिन मैं पर्यावरण चर का उपयोग करना पसंद करता था क्योंकि यह साफ था: https://access.redhat.com/discussions/1240213


बकवास - रुको। मुझे क्षमा करें, यह आज्ञा थी जो काम नहीं करती थी। मुझे मेरे द्वारा किए गए कदम के साथ उत्तर को अपडेट करने की आवश्यकता है
gravy21

ठीक है, मैंने अपडेट किया है कि मैंने वास्तव में मेरा कैसे तय किया। आशा है कि यह काम करता है अगर यह आपकी स्थिति पर लागू होता है।
gravy21
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.