यूनिक्स [डुप्लिकेट] में घुड़सवार उपकरणों के लॉग


0

इस सवाल का पहले से ही यहाँ एक जवाब है:

मूल प्रश्न के लिए अग्रिम में माफी।

मुझे यूनिक्स में माउंटेड / अनमाउंट किए गए उपकरणों के लॉग की पहचान करने की आवश्यकता है (इन कार्यों के लिए टाइमस्टैम्प सहित जहां प्रदर्शन किया गया है)।

मैंने देखा कि माउंट कमांड का उपयोग करना इस उद्देश्य के लिए बहुत उपयोगी नहीं है, क्योंकि माउंट / अनमाउंट ऑपरेशन्स जहां प्रदर्शन किया गया है, वहां टाइमस्टैम्प का कोई संकेत नहीं है। क्या कोई मुझे संभावित विकल्प का संकेत दे सकता है?

आपका अग्रिम में ही बहुत धन्यवाद! :-)


नमस्ते, एसओ में आपका स्वागत है। हालाँकि, आपका प्रश्न वास्तव में सुपरयूजर के अनुकूल है, जो कंप्यूटर प्रशासन के सवालों के लिए साइट है।
हांग ऑयॉय

ठीक है, मैं अपना प्रश्न भी सुपरसुअर फोरम में पोस्ट करूंगा।

नहीं, प्रतीक्षा करें - इसके बजाय पलायन करने के लिए कहें।
मकोतो

क्या आपने कोशिश की dmesg?
एंगल्स

मुझे पूरा यकीन है कि कर्नेल (डिफ़ॉल्ट रूप से) माउंटेड फ़ाइल सिस्टम के बारे में कहीं भी जानकारी नहीं देता है। अपने सिस्टम को डंप करने के लिए उपयुक्त सिस्टम कॉल में 'प्रिंटक' जोड़ना और वर्तमान समय सबसे अच्छा तरीका होगा।
जूल्स

जवाबों:


0

AFAIK, वह जानकारी जिसे आप खोज रहे हैं, डिफ़ॉल्ट रूप से बरकरार नहीं है। मेरा सुझाव है कि सबसे आसान तरीका यह है कि सूचनाओं को कहीं लॉग फ़ाइल में जोड़ने के लिए माउंट कमांड को संशोधित करें, हालांकि यह इस संभावना को खोलता है कि कोई अन्य प्रोग्राम माउंट होने के बजाय सीधे संबंधित सिस्टम कॉल का उपयोग कर रहा है। वैकल्पिक रूप से, बेहतर, यह करने के लिए कर्नेल को संशोधित करना बेहतर होगा। यह मानते हुए कि आप लिनक्स चला रहे हैं, परिवर्तन अपेक्षाकृत सरल होगा, लेकिन सभी कर्नेल परिवर्तन, यहां तक ​​कि सरल भी, ठीक से काम करने के लिए कुछ समय लेने की प्रवृत्ति रखते हैं।


मेरी समस्या यह है कि मैं यूनिक्स चला रहा हूं और मुझे पूरा यकीन नहीं है कि मैं माउंट कमांड को संशोधित कर सकता हूं।
user2551168

एक विकल्प के रूप में, मैं / var / log / syslog को देख रहा था, हालांकि यह काफी गड़बड़ है ...
user2551168

"यूनिक्स" एक बल्कि अस्पष्ट विनिर्देश है, क्योंकि नाम का उपयोग आमतौर पर काफी कुछ अलग प्रणालियों को संदर्भित करने के लिए किया जाता है। यूनिक्स का कौन सा सटीक संस्करण आप चला रहे हैं?
जूल्स

यह मुझे "uname -a" डार्विन लिलिनास-मैकबुक-प्रो.लोकल 12.4.0 डार्विन कर्नेल संस्करण 12.4.0 के साथ मिलता है: बुध 1 मई 17:57:12 पीडीटी 2013; रूट: xnu-2050.24.15 ~ 1 / RELEASE_X86_64 x86_64
user2551168

उस स्थिति में, आपको डेवलपर .apple.com/opensource से विष्णु कर्नेल के लिए स्रोत कोड की एक प्रति प्राप्त करने में सक्षम होना चाहिए , माउंट सिस्टम कॉल में आवश्यक लॉगिंग जोड़ना चाहिए ('लॉग ()' फ़ंक्शन syslog में आइटम जोड़ता है) लॉग करें, जो संभवत: वह है जो आप करना चाहते हैं) और कर्नेल को फिर से जोड़ें।
जूल्स

0

जहां तक ​​मेरी जानकारी है, ऐसी कोई लॉगिंग उपलब्ध नहीं है, जो आपको टाइम स्टैम्प देती हो, सिवाय डॉम्सग के, लेकिन यह केवल एक डिवाइस का स्टेटस देगा जो या तो कनेक्टेड है या डिस्कनेक्ट हो गया है।

वर्कअराउंड हो सकता है, आप लॉगिंग के लिए एक सरल स्क्रिप्ट लिख सकते हैं, एक while(1)लूप में जिसमें सम्‍मिलित होना चाहिए dateऔर mountकमांड करना चाहिए grepजो केवल चयनित डेटा को लॉगफाइल में लिखते हैं। कृपया याद रखें, sleepअगले लूप के लिए पर्याप्त मात्रा में समय लगाएं। फिर आप इसे पृष्ठभूमि प्रक्रिया के रूप में चला सकते हैं।


मैंने जो किया वह एक धागा बनाना है जो समय-समय पर system.log फ़ाइल को पढ़ता है और स्ट्रिंग "USBMSC आइडेंटिफ़ायर (गैर-अद्वितीय):" और "लॉग डीर:" युक्त लाइनों से क्रमशः यूएसबी आईडी और माउंट निर्देशिका की पहचान करता है। मैं घुड़सवार उपकरणों और निर्देशिका को भी सहेजता हूं जहां वे एक हैश तालिका में घुड़सवार होते हैं। इस तरह जब एक अनमाउंट ईवेंट को उठाया जाता है तो मैं अनमाउंट किए गए डिवाइस को यह जांच कर पहचान सकता हूं कि क्या उनके संबंधित माउंट डायरेक्टरी अभी भी मौजूद है। मुझे पता है कि यह बिल्कुल साफ तरीका नहीं है, लेकिन यह कई मामलों में काम करता है। आपके सहयोग के लिए धन्यवाद!
user2551168
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.