लिनक्स माउंट / umount घटना में हुक


9

क्या लिनक्स में पोस्ट-माउंट और प्री-ऑमाउंट स्क्रिप्ट प्रदान करने का एक तरीका है?
मैं स्टोरेज मीडिया पर कुछ स्क्रिप्ट्स करने की कोशिश कर रहा हूं जब माउंट किया गया और umounting से पहले (जैसे, सिंकिंग के लिए)।

किसी भी मदद की सराहना की।


फाइलसिस्टम कैसे माउंट किया जा रहा है? चीजें स्वचालित रूप से माउंट नहीं होती हैं संभवतः आपके पास कुछ प्रोग्राम / टूल है जो आपके लिए माउंट प्रदर्शन कर रहा है। आपको यह निर्धारित करने की आवश्यकता है कि वह क्या है और इसे प्रतिस्थापित करें या इसे ठीक करें।
२१:३

मेरे मामले में मैं आमतौर पर केडीई सबसिस्टम (संभवतः डॉल्फिन का उपयोग करता हूं, यह नहीं जानता कि वास्तविक माउंट कमांड के लिए कौन सा घटक जिम्मेदार है)
जोर्ज हूब्रीक्स

1
मैंने uDev के साथ या दूसरे प्रश्न के उत्तर में HALevt के साथ ऑटोमोटिव को संभालने के बारे में लिखा । उन केडीई या जीवीएफएस सबसिस्टम के लिए प्रतिस्थापन होंगे, लेकिन प्रक्रिया आपको कुछ विचार दे सकती है कि कहां देखना है। ऐसा लगता है कि आप Dbus mounts (डेस्कटॉप / उपयोगकर्ता स्थान के बजाय कर्नेल स्तर) में टैप करना चाहते हैं।
क्विकोट

जवाबों:


2

यदि आप ऐसा करने की कोशिश कर रहे हैं जो लोगों /sbin/mountऔर /sbin/umountकमांड को आमंत्रित कर रहे हैं , तो आपको बस इतना करना होगा कि आप दोनों के लिए एक रैपर प्रोग्राम बनाएं और इन रैपर प्रोग्राम्स में जो आप चाहते हैं उसे प्रोग्राम करें।

एक आवरण कार्यक्रम किया जा रहा है की जगह /sbin/mountआवरण प्रोग्राम है जो वास्तविक कॉल के साथ /sbin/mount(जैसे कुछ नाम दिया /sbin/mount-realया /sbin/umount-real)। वास्तविक प्रोग्राम को कॉल करने से रोकने के लिए, इसे प्रतिबंधित करने के लिए समूह अनुमतियों का उपयोग करें और आवरण कार्यक्रमों पर SGID बिट सेट करें।

यदि आप mount(2)लाइब्रेरी कॉल को ठीक करना चाहते हैं , तो यह एक अच्छा प्रयास है और शायद मुश्किल है और शायद यह उचित नहीं है क्योंकि इससे आंतरिक प्रणालियों के लिए विशेष रूप से स्टार्टअप और शटडाउन के दौरान समस्या हो सकती है।

रैपर प्रोग्राम के साथ भी आपको सिस्टम के व्यवधान से बचने के लिए पूरी तरह से परीक्षण करना होगा और उचित समायोजन करना होगा।


बहुत बुरा सलाह और एक रखरखाव हॉरर अगर कई कार्यक्रम ऐसा करेंगे। इस तरह शुरू मत करो।
लोथर

0

आप शायद एक inotify कर्नेल हुक का उपयोग कर सकते हैं , हालांकि एक पूर्व-अनमाउंट घटना वास्तव में पकड़ने के लिए मुश्किल हो सकती है क्योंकि मुझे यकीन नहीं है कि निर्देशिका के बाहर होने से पहले कोई इनॉटिफ़ाइ इवेंट भेजा गया है।


2
inotify आपको बताएगा कि एक डायरेक्टरी बनाई गई है (जैसे कि अंडर /mediaया /mnt), लेकिन ऐसा नहीं कि उस डायरेक्टरी में फाइलसिस्टम माउंट किया गया है।
क्रेग मैकक्यून

0

सबसे सरल उपाय जो शायद हमेशा के लिए काम करने वाला है, वह है प्रदूषण /etc/mtabया /proc/mounts। एक बार उस फ़ाइल में बदलाव किया जाता है, तो इसका मतलब है कि या तो कुछ माउंट हो गया या अनमाउंट हो गया। फिर आपको उस डिवाइस की जांच करनी होगी जिसे आप चाहते हैं।

Udev सबसे अच्छा समाधान नहीं है क्योंकि यह आपको बताता है कि क्या एक उपकरण जुड़ा हुआ है। यह नहीं कहता कि डिवाइस वास्तव में माउंट किया गया है या नहीं। यह कभी-कभी काम कर सकता है लेकिन यह एक घिनौना समाधान है जो किसी बिंदु पर टूट जाएगा और आप अपने बालों को बाहर खींच लेंगे।


"हैकी" आमतौर पर ज्यादातर स्थितियों के लिए पर्याप्त है। असली दुनिया "हैकी" समाधानों द्वारा चलाई जाती है। यदि आप नहीं जानते हैं कि तब आपके पास कंप्यूटर सिस्टम का उपयोग करने का कोई वास्तविक अनुभव नहीं है। कृपया अपनी राय अपने तक सहेज कर रखें और तथ्यों से चिपके रहें। धन्यवाद।
natxo asenjo

1
@natxoasenjo यही कारण है कि अच्छे डेवलपर्स और बुरे डेवलपर्स हैं।
पिथिकोस

कृपया वापस आएं जब आपके पास कुछ वास्तविक दुनिया का अनुभव हो। आप फाइलों को पोल करने के लिए कुछ स्क्रिप्ट / प्रोग्राम लिखने का प्रस्ताव रखते हैं और आपको लगता है कि यह एक बेहतर विचार है कि udv के रूप में एक अच्छी तरह से परीक्षित एपि का उपयोग करें। बुरा विकास करने वाला कौन है? ;-)
नेटेक्सो एसेन्जो

और वैसे, udv नियम लिखने से आप अपने कंप्यूटर के अधिकांश sysadmin पर, आपको डेवलपर नहीं बना सकते हैं।
natxo asenjo

1
@natxoasenjo अच्छी तरह से अगर आप यह नहीं देखते हैं कि "वास्तविक दुनिया" कार्यक्रम हैकिश समाधानों के कारण हर समय टूटते हैं तो या तो आप अंधे हैं या आपके पास "वास्तविक दुनिया का अनुभव" नहीं है। उदय ठीक काम करता है, लेकिन बढ़ते और अनमने से कोई लेना-देना नहीं है। और कृपया इसे एक मंच के धागे में बदलना बंद करें जो एक प्रोग्रामर है। किसी की मदद नहीं करता है।
पिथिकोस

0

आप ऐसा करने के लिए एक udv नियम लिख सकते हैं। मैं एक usb ड्राइव के लिए स्वचालित रूप से सामान का बैकअप लेने के लिए कुछ इस तरह का उपयोग किया है । मजेदार चीजें।


1
udv को लगता है कि माउंट / अनमाउंट के लिए कोई ईवेंट नहीं है। जब आप किसी डिवाइस को कनेक्ट / डिस्कनेक्ट करते हैं तो यह आग लग जाती है। और आपका लिंक काम नहीं करता है
पिथिकोस

जिसका उत्तर 4 साल पहले दिया गया था। मैं उस साइट के लिए जिम्मेदार नहीं हूं। लेकिन आप आर्काइव.ओआरजी पर एक नज़र डाल सकते हैं ... हां, यह अभी भी वहां है, यह ढूंढना पाठक के लिए एक अभ्यास के रूप में छोड़ दिया जाएगा। Udev के बारे में आपकी टिप्पणी के अनुसार, udv आपको नियम लिखने देता है और जब वे मेल खाते हैं, तो कार्रवाई निष्पादित करते हैं। यह आप सभी की जरूरत है
नाट्क्सो असेंजो

2
मुद्दा यह है कि इस मुद्दे पर लड़ रहे अन्य लोगों की मदद करना, यह अंक या अन्य अहंकार-वृद्धि के बारे में नहीं है। अब भले ही कोई उपयोगकर्ता उस सारी परेशानी से गुज़रता हो, लेकिन उसका समाधान पुराना है। तो आप बिना किसी लाभ के लोगों का समय बर्बाद कर रहे हैं (आपके पास 1-2 अप-वोट को छोड़कर)।
पिथिकोस

2
@natxoasenjo अन्य उपयोगकर्ता सही हैं, और यही कारण है कि हम लिंक को मरने के लिए अकेले खड़े होने के जवाब के लिए लिंक किए गए संसाधनों से पर्याप्त जानकारी उद्धरण या पैराफ्रेसेज के उत्तर को प्रोत्साहित करते हैं। यहां एक अच्छा जवाब वास्तव में उदाहरण के लिए दिखाया जाएगा कि कैसे बढ़ते / अनमाउंटिंग से पहले / बाद में एक स्क्रिप्ट चलाने के लिए एक udv नियम बनाने के लिए।
nhinkle

1
@natxoasenjo मैंने पोस्ट का दौरा किया क्योंकि आपकी टिप्पणी को एक असंबद्ध उपयोगकर्ता द्वारा असभ्य या अपवित्र बताया गया था। स्टैक एक्सचेंज को जवाबों के लिए कुछ उम्मीदें हैं, जिनमें से एक यह है कि उन्हें किसी बाहरी स्रोत के लिंक से अधिक होना चाहिए। आपका उत्तर उस आवश्यकता को पूरा नहीं करता है। आपके पास एक राय है जो "पूरी तरह से ठीक है" जो एक अच्छे उत्तर के लिए स्टैक एक्सचेंज की उम्मीदों से मेल नहीं खाती है। कृपया उत्तर देने के लिए कुछ समय निकालें
nhinkle
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.