फ़ाइल / निर्देशिका की संख्या को कितनी बार खोला गया है?


1

मैं उस समय की संख्या को खोजने की कोशिश कर रहा हूं जब कोई फ़ाइल खोली गई है (ओएस स्थापना के बाद से)। मैं इसे स्टैट के माध्यम से करने की सोच रहा हूं, लेकिन अधिकांश झंडे केवल खोले गए लास्ट के बीच के अंतर को वापस करते हैं।


मुझे यकीन नहीं है कि यह जानकारी वास्तव में अधिकांश फाइल सिस्टम द्वारा ट्रैक की गई है। आपको विशिष्ट फ़ाइलों की निगरानी करने और खोलने पर रिपोर्ट करने के लिए टूल का उपयोग करने की आवश्यकता हो सकती है। मुझे यकीन है कि ये मौजूद हैं, लेकिन खुद एक लिनक्स उपयोगकर्ता नहीं होने के कारण, मुझे उक्त टूल का नाम नहीं पता है।
Crippledsmurf

जवाबों:


2

इस उत्तर बताते हैं क्या किया जाना चाहिए, लेकिन की बारीकियों कैसे अपनी वितरण पर निर्भर करते हैं, अपने स्थापना और उद्देश्य है, और जो उपकरण आप डेटा पार्स करने के लिए चुनें:

आप जो खोज रहे हैं वह लिनक्स के भीतर ऑडिट डेमॉन है। मैनपेज ऑडिट (8) से :

ऑडिट लिनक्स ऑडिटिंग सिस्टम के लिए यूजरस्पेस घटक है। यह डिस्क पर ऑडिट रिकॉर्ड लिखने के लिए जिम्मेदार है। लॉग देखने के लिए ausearch या aureport उपयोगिताओं के साथ किया जाता है । ऑडिट नियमों को कॉन्फ़िगर करना ऑडिटैक्टल उपयोगिता के साथ किया जाता है । स्टार्टअप के दौरान, नियमों को ऑडिटैक्टल/etc/audit/audit.rules द्वारा पढ़ा जाता है और कर्नेल में लोड किया जाता है। समान रूप से, एक अग्न्याशय कार्यक्रम भी है जो स्थित नियमों को पढ़ता है और उन्हें एक फ़ाइल में संकलित करता है । ऑडिट डेमॉन में स्वयं कुछ विन्यास विकल्प हैं जिन्हें व्यवस्थापक अनुकूलित करना चाहता है। वे फ़ाइल में पाए जाते हैं ।/etc/audit/rules.d/audit.rulesauditd.conf

ऑडिटिंग कर्नेल में निर्मित फ़ंक्शंस का उपयोग करता है जब भी आपके सिस्टम के अनुसार कुछ सिस्टम कॉल किए जाते हैं, तो लॉग बनाने के लिए। एक बार सेटअप होने के बाद, आप /var/log/auditअपने वितरण के अनुसार या कहीं और लॉग पाएंगे ।

किसी फ़ाइल तक पहुंच का ऑडिट करने के लिए, आप कुछ इसी तरह का उपयोग करेंगे:

auditctl -w /path/to/interesting/files/ -p rwxa -k myfileaudits

कहाँ -wफ़ाइलों के लिए पथ निर्दिष्ट करता है -pनिर्दिष्ट करता है कि सिस्टम का ऑडिट होगा आर EADS डब्ल्यू संस्कार, ई एक्स ecutions, और एक ttribute या अनुमति बदल जाता है। अंत में, -kविकल्प है जब साथ इस नियम के लिए खोज आप उपयोग के लिए एक मनमाना कुंजी निर्दिष्ट कर सकते हैं ausearch

ध्यान दें, हालांकि ऑडिट सिस्टम कॉल से काम करता है , लेकिन रीड फ़ंक्शन को -p rट्रैक नहीं करता है , बल्कि खुला है ताकि लॉग हर रीड के साथ बाढ़ न आए, लेकिन एक प्रविष्टि हर बार एक फाइल पढ़ने के लिए खोली जाती है।

एक बार ऑडिटिंग चालू हो जाने के बाद, और लॉग में जगह हो जाती है, इन फ़ाइलों को निर्दिष्ट फ़ाइलों तक पहुँच के लिए इन लॉग को पार्स करने के लिए उपयोग किया जा सकता है, और लंबा बनाने के लिए मानक पाठ या सांख्यिकी टूल का उपयोग किया जा सकता है। इन से भिन्न हो सकते हैं grepऔर wc -lलॉग प्रविष्टियों गिनती करने के लिए, या पटकथा और के कुछ संयोजन जीएनयू-आर या gnuplot ग्राफ़ और रिपोर्ट उत्पन्न करने के लिए।


एक अन्य विकल्प SELinux का उपयोग करना है । जबकि SELinux अभिगम नियंत्रण का एक उपकरण है जो आम तौर पर केवल पहुंच-अस्वीकरणों को लॉग करता है, यह सभी एक्सेस लॉग करने के लिए सेटअप हो सकता है, और ऑडिट के लिए समान जानकारी प्रदान कर सकता है।


संपादित करें: यदि प्रारंभ से ही रिकॉर्ड का उपयोग आवश्यक है : उदाहरण के लिए, ओएस इंस्टॉलेशन के दौरान, बूट से पहले ऑडिट शुरू करने से पहले, या ऑडिट इंस्टॉलेशन से पहले, तब अधिक चरम उपायों की आवश्यकता होती है। initrd.imgआवश्यक डिबगर या कर्नेल स्तर अनुरेखण उपकरण को लोड करने के लिए एक कस्टम इंस्टॉलर या कस्टम बूट फ़ाइल बनाई जा सकती है। इन ट्रेसिंग टूल्स में बूट के दौरान एक्सेस को पकड़ने के लिए dtrace , perf , SystemTap , ktap या इसी तरह के डिबगर लेवल टूल्स शामिल हो सकते हैं। एक अच्छा संदर्भ http://www.brendangregg.com/linuxperf.html है और सिस्टम प्रदर्शन के लिए विश्लेषण के इस प्रकार का एक उदाहरण है, बजाय ऑडिटिंग बूटचैट

हालांकि इसे स्थापित करना मेरे अनुभव के दायरे से परे है - आशा है कि संदर्भ उपयोगी साबित होंगे।


+1 - यह प्रदर्शन करने के लिए स्थापित करने के बारे में एक शानदार उत्तर है। यह सवाल ओएस इंसेप्शन से इस जानकारी को प्राप्त करने के बारे में पूछता है, जिसका अर्थ है रेट्रोचैक्टली। क्या आप यह पता लगाने के लिए जवाब दे सकते हैं कि क्या यह संभव है?
fixer1234

@ fixer1234 मैं कहूंगा कि यह निर्भर करता है कि 'OS इंसेप्शन' को कैसे परिभाषित किया जाता है। यदि 'प्रोडक्शन चीज़' को ट्रैक करना है तो स्थापित करें, सख्त करें, ऑडिट करें और लॉगिंग, बेसलाइन और बैकअप लें, ऐसा तब किया जाना चाहिए जब आप OS को उत्पादन में डालते हैं। इसलिए जब तक आप स्वयं इंस्टॉल प्रक्रिया का विश्लेषण नहीं कर रहे हैं, बस कुछ भी स्थापित करने से पहले ऑडिटिंग को कॉन्फ़िगर करें। यदि नहीं, और आप OS स्तर की चीजों को 'नंगे-धातु के बीच कहीं से शुरू करना चाहते हैं, तो इंस्टॉलर की पहली रीड / राइट्स, या' फर्स्ट-बूट 'को ट्रैक करना चाहते हैं, या फिर डिबग-लेवल फ़ंक्शंस के साथ एक कस्टम इनरट या कस्टम इंस्टॉलर सुव्यवस्थित है। इस आशय में संपादन जोड़ना।
ग्लॉलेन

1
इस सवाल पर मेरा पढ़ा वास्तव में कुछ अलग था। मुझे लगा कि यह पूछ रहा है कि क्या तथ्य के बाद पता करने का कोई तरीका है। आपके पास एक मौजूदा सिस्टम है जो अतीत में कुछ समय बनाया है। इस बिंदु पर आप किसी फ़ाइल के उपयोग का इतिहास जानना चाहते हैं। क्या प्रत्येक फ़ाइल के साथ एक इतिहास या पैरामीटर जुड़ा हुआ है जो कि फाइल सिस्टम का हिस्सा है जो किसी भी मनमानी फ़ाइल को खोले जाने की संख्या को इंगित करता है। ऐसा लगता है कि आप कह रहे हैं कि उत्तर नहीं है। आप उस बिंदु से आगे उपयोग को ट्रैक करने के लिए सेट कर सकते हैं। यदि आपको इसकी आवश्यकता है, तो आपको इसे पहले से निर्धारित करना होगा।
fixer1234

सही बात। इसका सेटअप होना चाहिए। Ext4 में एक इनोड की संरचना को देखें ... एक्सेस काउंट के लिए उस संरचना में कोई प्रविष्टि नहीं है, केवल i_*timeविभिन्न अंतःक्रिया समयों के लिए प्रविष्टियाँ जैसे : एक्सेस, इनोड परिवर्तन, डेटा संशोधन और विलोपन।
5

क्या यह एक स्क्रिप्ट लिखना संभव है जो किसी फ़ाइल या निर्देशिका की संख्या की गिनती अब शुरू होने पर खोली जाएगी?
mynameis
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.