सवाल लिनक्स कंसोल - किस डिवाइस का यूएसबी स्टोरेज असाइन किया गया है प्रोग्रामेटिकल डिटेक्शन


हर सुबह 9 बजे हम एक बाहरी एचडी को हमारे कार्यालय सर्वर (हमेशा एक ही यूएसबी पोर्ट पर) प्लग करते हैं।
हर दिन एचडी नया है, लेकिन उनमें से सभी एक ही निर्माता (फ्रीकॉम) द्वारा बनाए जाते हैं।

हर दिन 12 बजे, एक स्क्रिप्ट एचडी में सब कुछ का समर्थन करता है।
पहला कदम एचडी को इस फैशन में माउंट करना है:

mount /dev/sdc1 /mnt/backup

समस्या कभी-कभी डिवाइस फ़ाइल / dev / sdc1 नहीं है लेकिन कुछ और (यानी / dev / sdd1) है। मैं अभी भी यह नहीं समझ सकता कि क्यों हम किसी और चीज में प्लग नहीं कर रहे हैं और हम हमेशा उसी पोर्ट का उपयोग करते हैं।

तो मेरी समस्या यह है कि कैसे सही डिवाइस फ़ाइल को एक बहुत ही सुरक्षित तरीके से प्रोग्रामेटिक रूप से पहचानना है। मेरा एकमात्र विचार अब तक इस पंक्ति से / dev / xxx खोजने और निकालने के लिए / dev / disk / by-id निर्देशिका की सामग्री को grep करना है:

lrwxrwxrwx 1 root root 10 Sep 24 11:03 usb-Freecom_ToughDrive_1A90102657FF-part1 -> ../../sdc1

कोई बेहतर सुझाव? मेरे रास्ते के बारे में कोई चिंता?

मुझे आश्चर्य है कि कैसे lsusb मुझे इतना मदद नहीं कर सकता है।


5
2017-09-24 13:45


मूल




जवाब:


by-id प्रवेश एक लिंक है, ज्यादातर मामलों में आप इसके बजाय बस इसका उपयोग कर सकते हैं /dev/sdc1। यदि नहीं, तो आप इसे अस्वीकार कर सकते हैं readlink

readlink -f /dev/disk/by-id/usb-Freecom_ToughDrive_1A90102657FF-part1
/dev/sdc1

5
2017-09-24 15:03





आप आसानी से udev नियमों के साथ ठीक कर सकते हैं। udev नियम बूट पर और विभिन्न हॉट-प्लग ईवेंट पर विशेष हैंडलिंग प्रोग्राम / सेवाएं चलाने या डिवाइस नामकरण सेट करने के लिए चलते हैं। ऐसा लगता है कि आप एक udev नियम को लगातार अपने ड्राइव को / dev / backup जैसे किसी नाम पर नामित करना चाहते हैं, इसलिए एक mtab प्रविष्टि लगातार / dev / बैकअप / mnt / बैकअप पर माउंट / dev / बैकअप (आप डिवाइस को स्वचालित रूप से आरोहित कर सकते हैं यदि आप ' पसंद।

यहां एक पुरानी लेकिन अभी भी काफी हद तक प्रासंगिक मार्गदर्शिका है udev नियम लिखना। हाल ही में लिनक्स distros में udevinfo कार्यशीलता में तब्दील हो गया है udevadm आदेश। इस तरह के कमांड का उपयोग करने से आपको यह पता लगाने में मदद मिलनी चाहिए कि आप किस विशेष फ़ील्ड से मेल खाना चाहते हैं:

udevadm info -q all --path=/sys/block/sdc

एक बार जब आप जानते हैं कि मानचित्रण के लिए कौन से फ़ील्ड पर्याप्त हैं, तो आप एक udev नियम फ़ाइल बनाना चाहते हैं /etc/udev/rules.d/ (यह नोट करते हुए कि नियम फाइलों का मूल्यांकन प्राकृतिक क्रम क्रम में किया जाता है और आपके वितरण के पास कहीं भी संग्रहीत नियम हो सकते हैं /lib/udev/rules.d/ तो तदनुसार नाम)। आप ऐसा नियम बनाना चाहते हैं जो ऐसा कुछ दिखता है जो एक बना देगा /dev/backup symlink जो भी डिवाइस का नाम है इंगित करता है:

ENV{DEVTYPE}=="disk", ID_SERIAL=="Freecom_ToughDrive_1A90102657FF", SYMLINK+="backup"
ENV{DEVTYPE}=="partition", ID_SERIAL=="Freecom_ToughDrive_1A90102657FF", SYMLINK+="backup%n"

ध्यान दें: मैं उपरोक्त धारावाहिक संख्या का अनुमान लगा रहा हूं /dev/disk/by-id/ आप उपरोक्त सूची। यह सही क्षेत्र या सही मूल्य पर मेल नहीं खा रहा है। आगे ध्यान दें कि यह एक विशिष्ट सीरियल नंबर से मेल खाता है और इसलिए एक विशिष्ट डिवाइस है, यदि आप डिवाइस बदलते हैं तो आपको इसे बदलना होगा।

उम्मीद है की वो मदद करदे!

सरल दृष्टिकोण: चूंकि मैं ग्राहक उपभोग के लिए उत्पादों को पॉलिश करने के लिए हर समय udev का उपयोग करता हूं, यह अक्सर पहली चीज है जिसके लिए मैं पहुंचता हूं। udev पहले से ही डिवाइस को अद्वितीय बनाकर आप जो चाहते हैं वह कर रहे हैं /dev/disk/by-id प्रविष्टियों। बस अपना बदलो /etc/mtab चढ़ना /dev/disk/by-id/Freecom_ToughDrive_1A90102657FF-part1 पर /mnt/backup। ए mount /mnt/backup आपकी लिपि में माउंट के लिए पर्याप्त होगा।


1
2017-09-24 17:31





यदि तुम करो

tail /var/log/messages

यूएसबी डालने के ठीक बाद आप देखेंगे कि यह किस डिवाइस को पहचाना गया है।


0
2017-09-24 14:12



इसके साथ समस्या यह है कि एचडी 9 बजे प्लग हो जाता है जबकि स्क्रिप्ट 12 बजे चलती है और बीच में कुछ और हो सकता है जिसे डीएमएसजी द्वारा मुद्रित किया जाएगा
ठीक है तो नहीं tail परंतु grep? - Unreason


मुझे अपने एक कार्यान्वयन में एक ही समस्या का सामना करना पड़ा, इसलिए समाधान खोजने के बाद मैंने एक लेख लिखा। यह यूडीईवी के मामले में लिनक्स में यूएसबी डिवाइस खोजने में दूसरों की मदद कर सकता है, जो स्वचालित रूप से डिवाइस बनाते या प्रबंधित करते हैं।

लिनक्स में यूएसबी डिवाइस कैसे खोजें I


-1
2018-02-01 10:07



linuxexplore, सर्वर गलती में आपका स्वागत है! यह आत्म-प्रचार के लिए एक जगह नहीं है, अगर आप अपना जवाब गिनना चाहते हैं, तो कृपया लेख का सार पोस्ट करें यहाँ। अन्यथा आपकी पोस्ट को स्पैमिंग माना जाएगा। - Deer Hunter
सर्वर फॉल्ट में आपका स्वागत है! हम वास्तव में पसंद करते हैं कि उत्तरों में सामग्री को पॉइंटर्स नहीं है। जबकि यह सैद्धांतिक रूप से सवाल का जवाब दे सकता है, यह बेहतर होगा यहां उत्तर के आवश्यक हिस्सों को शामिल करने के लिए, और संदर्भ के लिए लिंक प्रदान करें। - Iain