जवाबों:
यम प्लगइन्स का समर्थन करता है, इसलिए यह पूरी तरह से एक प्लगइन लिखना संभव है जो कैश्ड कठपुतली की उपस्थिति को पढ़ता है और चेतावनी देता है कि जब कोई लेन-देन कठपुतली नियंत्रित फ़ाइल को अधिलेखित कर देगा। मैं एक मौजूदा प्लगइन के बारे में नहीं जानता जो ऐसा करता है, लेकिन मैं शायद सिर्फ एक ही लिखूंगा जैसे कि मुझे विचार पसंद है।
प्लगइन सभी नए स्थापित / उन्नत / डाउनग्रेड किए गए पैकेजों की जांच करता है, आपको बताता है कि कौन सी कठपुतली-प्रबंधित फाइलें इसे अधिलेखित कर देगी और ऐसा करने के लिए एक पुष्टिकरण मांगती है।
[root@camel ~]# yum update pam
Loaded plugins: puppet, security
Skipping security plugin, no data
Setting up Update Process
Resolving Dependencies
Skipping security plugin, no data
--> Running transaction check
---> Package pam.i386 0:0.99.6.2-12.el5 set to be updated
---> Package pam.x86_64 0:0.99.6.2-12.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================
Updating:
pam i386 0.99.6.2-12.el5 base 983 k
pam x86_64 0.99.6.2-12.el5 base 982 k
Transaction Summary
===============================================================================================================================================================
Install 0 Package(s)
Upgrade 2 Package(s)
Total download size: 1.9 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): pam-0.99.6.2-12.el5.x86_64.rpm | 982 kB 00:00
(2/2): pam-0.99.6.2-12.el5.i386.rpm | 983 kB 00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 8.7 MB/s | 1.9 MB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/pam.d/system-auth
Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/access.conf
Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/limits.conf
Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/pam.d/system-auth
Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/access.conf
Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/limits.conf
Is this ok [y/N]: n
Aborting
[root@camel ~]# yum update pam
Loaded plugins: puppet, security
Skipping security plugin, no data
Setting up Update Process
Resolving Dependencies
Skipping security plugin, no data
--> Running transaction check
---> Package pam.i386 0:0.99.6.2-12.el5 set to be updated
---> Package pam.x86_64 0:0.99.6.2-12.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================
Updating:
pam i386 0.99.6.2-12.el5 base 983 k
pam x86_64 0.99.6.2-12.el5 base 982 k
Transaction Summary
===============================================================================================================================================================
Install 0 Package(s)
Upgrade 2 Package(s)
Total size: 1.9 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/pam.d/system-auth
Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/access.conf
Installing pam-0.99.6.2-12.el5.i386 overwrites puppet-managed file /etc/security/limits.conf
Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/pam.d/system-auth
Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/access.conf
Installing pam-0.99.6.2-12.el5.x86_64 overwrites puppet-managed file /etc/security/limits.conf
Is this ok [y/N]: y
Updating : pam 1/4
Updating : pam 2/4
Cleanup : pam 3/4
Cleanup : pam 4/4
Updated:
pam.i386 0:0.99.6.2-12.el5 pam.x86_64 0:0.99.6.2-12.el5
Complete!
प्लगइन ही मेरे github हैक्स रिपॉजिटरी में पाया जा सकता है ।
8 नवंबर 2013 अपडेट:
जैसा कि टिप्पणियों में संकेत दिया गया है, मैंने अब इसे यम और पपेट के बीच बातचीत को बेहतर बनाने के लिए एक बड़ी परियोजना में बदल दिया है। आप इसे GitHub पर पा सकते हैं ।
हां, यह संभव है लेकिन यह कठपुतली से संबंधित नहीं है।
लिनक्स सिस्टम के पास इनॉटिफ़ाइ मेकेनिज्म के लिए समर्थन है जिसका उपयोग "फाइलसिस्टम इवेंट्स पर निगरानी और कार्रवाई करने के लिए किया जा सकता है"। इसके अलावा inotify-tools
एक incron
कार्यक्रम भी है जो क्रोन के समान काम करता है लेकिन यह सिस्टम ईवेंट को फाइल करने के लिए प्रतिक्रिया करता है। मुझे लगता है कि आप इसे किसी भी फ़ाइल को बदलने के बारे में सूचित करने के लिए उपयोग कर सकते हैं।
(BTW, यदि आप /etc/sysctl.conf
फ़ाइल देखना चाहते हैं, तो मैं यह करने से पहले जांचने का सुझाव देता हूं - क्या आपके लिनक्स में /etc/sysctl.d
निर्देशिका के लिए समर्थन है ?)
मुझे इस तरह के नोटिफिकेशन को लागू करने का कोई तरीका नहीं पता है। यम लेन-देन के मंचन द्वारा कुछ सेट करना संभव हो सकता है, कॉन्फ़िगर फ़ाइलों की सूची का निर्धारण करना जो प्रभावित हो सकती हैं, और फिर यह देखने के लिए कि क्या कठपुतली उनमें से किसी का प्रबंधन करती है।
हालांकि, सामान्य तौर पर एक फ़ाइल को प्रबंधित करना अच्छा नहीं होता है जिसे पैकेज द्वारा अपडेट किया जाएगा। कॉन्फ़िगरेशन फ़ाइलों के मामले में (rpm -qlc packagename का उपयोग करने के लिए देखें कि क्या वे इस तरह के रूप में चिह्नित हैं), यदि पैकेज में नया संस्करण है तो इसे फ़ाइल नाम के रूप में सहेजा जाता है ।rpmnew। फिर आप किसी भी आवश्यक परिवर्तन को मर्ज करने के लिए अपने उपकरणों पर छोड़ दिए जाते हैं।
हम एक समस्या में चले गए हैं जहां कठपुतली द्वारा एक कॉन्फ़िगर फ़ाइल को हटा दिया गया था और फिर पैकेज को अपडेट किए जाने पर यम द्वारा प्रतिस्थापित किया गया था। जब तक अगले कठपुतली रन ने फ़ाइल को हटा नहीं दिया, तब तक यह समस्या थी। उस स्थिति के लिए हमारा काम यह था कि "हटाए गए" फ़ाइल की सामग्री को एक टिप्पणी पर सेट किया जाए ताकि यह अनिवार्य रूप से खाली हो। इसे संभालने का एक और तरीका यह सुनिश्चित करने का प्रयास होगा कि पैकेज ['a'] -> फ़ाइल [’/ etc / a’] ताकि केवल एक कठपुतली चलाने की आवश्यकता हो।