inotify गिरी काम करने से समर्थन की आवश्यकता है। जब कोई एप्लिकेशन किसी निर्देशिका को ट्रैक करता है, तो यह कर्नेल को यह सूचित करने के लिए कहता है कि ये परिवर्तन कब होते हैं। जब परिवर्तन होता है, डिस्क में उन परिवर्तनों को लिखने के अलावा, कर्नेल भी देखने की प्रक्रिया को सूचित करता है।
रिमोट एनएफएस मशीन पर, परिवर्तन कर्नेल को दिखाई नहीं देता है; यह पूरी तरह से दूरस्थ रूप से होता है। एनएफएस इनोटिफाइटी की भविष्यवाणी करता है और इसके लिए एनएफएस, या समकक्ष कुछ भी नेटवर्क स्तर का समर्थन नहीं है।
यदि आप इसके आसपास जाना चाहते हैं, तो आप स्टोरेज सर्वर पर एक सेवा चला सकते हैं (क्योंकि कर्नेल हमेशा फाइल सिस्टम में परिवर्तन देखेगा) कि ब्रोकर दूरस्थ मशीनों के लिए अनुरोधों को सूचित करते हैं, और डेटा को रिमोट क्लाइंट को अग्रेषित करते हैं।
संपादित करें: यह मेरे लिए अजीब है कि NFS inotify के लिए समर्थन की कमी के लिए दोषी ठहराया जाना चाहिए लगता है।
Inotify (inode सूचित) एक है:
नेटवर्क फ़ाइल सिस्टम (NFS) मूल रूप से 1984 में सन माइक्रोसिस्टम्स द्वारा विकसित एक वितरित फ़ाइल प्रणाली प्रोटोकॉल, wikipedia article
हालांकि है लिनक्स कर्नेल सबसिस्टम जो फाइल सिस्टम में परिवर्तनों को नोटिस करने के लिए फाइल सिस्टम का विस्तार करने के लिए कार्य करता है। [...] इसे रिलीज 2.6.13 (जून 18,) से मेनलाइन लिनक्स कर्नेल में शामिल किया गया है [...]। wikipedia article
यह एक पोर्टेबल नेटवर्क प्रोटोकॉल/आवेदन एक अलग ऑपरेटिंग सिस्टम के लिए विकसित किया गया एक विशिष्ट कर्नेल सुविधा का समर्थन करने की उम्मीद करना मुश्किल है और उस बीस से अधिक वर्षों बाद में दिखाई दिया। भले ही में इसके लिए एक्सटेंशन शामिल हों, वे अन्य ऑपरेटिंग सिस्टम पर उपलब्ध या उपयोगी नहीं होंगे।
* सभी मामलों में जोर मेरा
इस साथ एक और समस्या; आइए मान लीजिए कि हम नेटवर्क का उपयोग नहीं कर रहे हैं, बल्कि स्थानीय इनपुट सिस्टम को अच्छे इनोटिफी समर्थन के साथ नहीं कर रहे हैं: ext3 (मान लीजिए कि यह /mnt/foo
पर आरोहित है)। लेकिन वास्तविक डिस्क के बजाय, फाइल सिस्टम को लूपबैक डिवाइस से आरोहित किया जाता है; और अंतर्निहित फ़ाइल बदले में vfs में एक अलग स्थान पर पहुंच योग्य है (कहें, /var/images/foo.img
)।
अब, आप आरोहित ext3 फाइल सिस्टम को संशोधित नहीं करना चाहते हैं, लेकिन यह अभी भी उचित रूप से सुरक्षित है यदि परिवर्तन मेटाडेटा के बजाय सामग्री को फ़ाइल करना है।
तो, एक चतुर उपयोगकर्ता एक हेक्स संपादक में फाइल सिस्टम छवि (/var/images/foo.img
) को संशोधित करता है लगता है, कुछ अन्य डेटा के साथ एक फ़ाइल की सामग्री की जगह है, जबकि एक ही समय में एक inotify घड़ी घुड़सवार फाइल सिस्टम पर एक ही फाइल को देख रहा है।
इस तरह के परिवर्तन की देखने की प्रक्रिया को हमेशा सूचित करने के लिए कोई भी उचित तरीका नहीं है। यद्यपि शायद कुछ gyrations हैं जो ext3 नोटिस बनाने और परिवर्तन का सम्मान करने के लिए ले जा सकते हैं, इनमें से कोई भी, xfs drtiver कहने के लिए लागू नहीं होगा, जो अन्यथा काफी समान है।
और इसे भी नहीं करना चाहिए। तुम धोखा दे रहे हो!। inotify केवल वास्तविक माउंटपॉइंट पर देखे गए vfs के माध्यम से होने वाले परिवर्तनों के बारे में सूचित कर सकता है। यदि अंतर्निहित डेटा में परिवर्तन की वजह से वीएफएस के बाहर होने वाले परिवर्तन, इनोटिफ़ाई आपकी मदद नहीं कर सकता है और उस समस्या को हल करने के लिए डिज़ाइन नहीं किया गया है।
क्या आपने नेटवर्क अधिसूचना के लिए संदेश कतार का उपयोग करने पर विचार किया है?
तो आप कह रहे हैं कि केवल उस सिस्टम पर स्क्रिप्ट है जो फाइल सिस्टम या कंप्यूटर के परिवर्तन को अधिसूचित करता है? यही वह व्यवहार है जिसे मैं उम्मीद करूंगा। – Gabe
मैंने एक फीचर अनुरोध की सूचना दी [यहां] (https://bugzilla.kernel.org/show_bug.cgi?id=53161)। – HRJ