तो मैं सेटअप संपादन, जो काम किया जब तक मैं विम इस्तेमाल किया फ़ाइल को संपादित करने, तो मैं भी नाम बदलता है और कृतियों के लिए निर्देशिका को देखने के लिए किया था के लिए एक कॉन्फ़िग फ़ाइल देखने के लिए कुछ कोड के साथ एक फ़ाइल को देखने के लिए। तब मैंने पाया कि मार्ग पदानुक्रम में उच्च नामों को नहीं पकड़ लिया। तब मैंने सिम्लिंक में देखा ... गाहाह!उपयोग INotify कई सिमलिंक
पहले सेटअप एक बना उदाहरण एक मुश्किल सिमलिंक परिदृश्यों (कई की) दिखा:
mkdir config1
touch config1/config
ln -s config1 machine1
mkdir config2
touch config2/config
ln -s config2 machine2
ln -s machine1 active
अब, सक्रिय/config कि मैं देखना चाहते हैं की तरह एक फ़ाइल नाम को देखते हुए, मैं देख सकते हैं कि एक inotify पाने के लिए के लिए वर्णक देखें:
config1/ -> watch active/ follow symlinks (watches inode for config1)
active/ -> watch active/ dont follow symlinks (watches inode for active symlink
active/config -> watch active/config (watches inode for config1/config)
मैं मशीन 1 सिम्लिंक पर घड़ी कैसे जोड़ूं? क्या मुझे प्रत्येक सिमलिंक जोड़ने के लिए रास्ते में प्रत्येक के लिए मैन्युअल रूप से चलने के लिए कुछ रास्ता खोजने की ज़रूरत है? कैसे?
mkdir config3
touch config3/config
ln -s -f -n config3 machine1
और inotify चेतावनी दी है कि सक्रिय/config रीडायरेक्ट किया गया है:
उद्देश्य अनुमति है। फिलहाल ऐसा लगता है कि मुझे इसके लिए एक घड़ी जोड़नी होगी:
- target file inode
- every directory inode leading to the file (to detect moves/renames of directories)
- every symlink inode involved in reaching any of the above
केवल एक फ़ाइल देखने का एक आसान तरीका होना चाहिए? क्या मैंने पथ से भटक लिया है या यह वास्तव में रास्ता है?
आप "एक फ़ाइल" नहीं देख रहे हैं - आप अपना पूरा पथ देख रहे हैं, फ़ाइल शामिल है। वह, प्लस 'inotify' रिकर्सिव नहीं है, पहले 2 अंक शामिल हैं। सिम्लिंक का अस्तित्व आपके अंतिम बिंदु को जरूरी बनाता है। – tucuxi
हां, मुझे समझ में आता है कि ब्याज की फाइल तक पहुंचने में शामिल सभी इनोड देखने के लिए इनोटिफ़ाई सेट अप की जानी चाहिए, लेकिन मुझे अस्पष्ट नहीं है कि उपयोग का मामला क्या है * मुझे * जो कुछ मैंने वर्णित किया है उसे करने की आवश्यकता नहीं है? यह जटिल है (मैंने '..' और सिम्लिंक का भी उल्लेख नहीं किया है), स्क्रू करना आसान है (संदर्भ गिनती गुणा निर्देशिका और सिम्लिंक गुणा), बहुत सी दौड़ की स्थिति है (कोई सिमलिंक देख रहा है जबकि कोई इसे बदल रहा है?), और हर कोई ऐसा लगता है कि इसकी आवश्यकता है। लेकिन एक पुस्तकालय नहीं है जो ऐसा करता है? हुह। – Speed8ump
इसकी सभी कमियों के साथ, इनोटिफ़ाई अभी भी इसे बदलने की तुलना में बहुत बेहतर है (उदाहरण के लिए, http://lwn.net/Articles/604686/)। पुस्तकालयों की कमी के कारण, आपने उल्लेख नहीं किया कि आप उनकी तलाश में थे; libinotiftytools आपके कार्यों को थोड़ा सा सरल बना सकता है (यह आपके लिए सिस्को करता है), लेकिन मुझे कुछ भी नहीं मिल रहा है जो आपके सटीक उपयोग-मामले को कवर करता है। – tucuxi