/ आदि / में परिवर्तन का ट्रैक कैसे रखें


30

मैं / etc / में परिवर्तनों का ट्रैक रखना चाहूंगा

मूल रूप से मैं यह जानना चाहूंगा कि यदि कोई फ़ाइल yum updateउपयोगकर्ता द्वारा या उसके द्वारा बदला गया है, तो यदि मुझे पीछा पसंद नहीं है, तो उसे वापस ले लें। मैंने git, LVM या btrfs स्नैपशॉट या इसके लिए बैकअप प्रोग्राम जैसे VCS का उपयोग करने के बारे में सोचा।

आप क्या सुझाव देंगे?


जवाबों:


32

ऐसा लगता है कि आप डेबियन के जोए हेस से एटकीपर चाहते हैं, जो /etcसंस्करण नियंत्रण का उपयोग करके फ़ाइलों का प्रबंधन करता है । यह git, mercurial, darcs और बाज़ार का समर्थन करता है।

गिट वीसीएस एटिट्यूडर द्वारा समर्थित सबसे अच्छा है और वीसीएस उपयोगकर्ताओं को सबसे अधिक जानने की संभावना है। यह संभव है कि आपके वितरण ने एटकीपर को संशोधित करने के लिए चुना है, इसलिए इसका डिफ़ॉल्ट वीसीएस नहीं है। यदि आप दूसरे VCS के साथ प्यार में हैं, तो आपको केवल वीसीएस के अलावा वीसीएस के साथ एटकीपर का उपयोग करना चाहिए।


Etckeeper आसानी से सबसे मूल्यवान व्यवस्थापक उपकरणों में से एक है जिसे मैंने अपनी मशीनों पर स्थापित किया है, और एक बहुत ही पहले पैकेज में से एक है जो मैं एक नई प्रणाली स्थापित करने के बाद स्थापित करता हूं।
हवलदार

6

मैं आपको अंतिम सिफारिश नहीं दे सकता, लेकिन मैं इस विषय पर कुछ विचार साझा कर सकता हूं। यह देखते हुए कि / आदि आमतौर पर छोटा है, आप बस एक सरल संकुचित टार-बॉल समाधान के लिए जा सकते हैं। यदि आपको इतिहास से गुजरने की आवश्यकता है, तो इसे स्थापित करना सबसे आसान उपाय हो सकता है।

मेरे लिए यह सिर्फ / / आदि का ट्रैक रखने के लिए लॉजिकल वॉल्यूम को प्रबंधित करने के लिए थकाऊ होना होगा और विशेष रूप से मुझे नहीं लगता कि LVM स्नैपशॉट को अपेक्षाकृत कम मात्रा में डेटा के बैकअप के लिए नियमित रूप से बनाए जाने के लिए डिज़ाइन किया गया था।

btrfs मुझे इसके लिए बेहतर तरीके से सुसज्जित लगते हैं, लेकिन यह अभी भी उतना स्थिर नहीं है, उदाहरण के लिए, {2,3,4} और fsck टूल को भी अभी तक नहीं किया गया है। लेकिन यह लगातार बेहतर होता जाता है।

व्यक्तिगत रूप से मैं वास्तव में ट्रैक / आदि के लिए गिट का उपयोग करता हूं, लेकिन आपको यह ध्यान रखना चाहिए कि गिट स्वामित्व या अनुमति जैसी फ़ाइल मेटेनफॉर्म को स्टोर नहीं करता है! और यह भी जांच लें कि .IT निर्देशिका के पास सही अनुमति है। कुछ उपकरण हैं जो इन समस्याओं के साथ मदद करते हैं। आप आदि-कीपर पर एक नज़र डालना चाहते हैं , जिसे ठीक से / etc के ट्रैक रखने के लिए विकसित किया गया था या मेटेनफॉर्म को ट्रैक करने के लिए gitperms या metastore जैसी किसी चीज़ का कम से कम उपयोग करें ।


3

"अवांछित" परिवर्तनों पर नज़र रखने के लिए हम एक HIDS का उपयोग करते हैं - हमारे मामले में samhainअन्य हैं tripwireया aide। जब कुछ अवांछित हुआ तो ये सभी सिस्टम आपको चेतावनी देंगे।

A yum update.rpmnew या .rpmold को छोड़े बिना कुछ भी नहीं बदलना चाहिए, यदि कॉन्फिग-फाइल को इसी आरपीएम में फ्लैग किया गया हो।

Myselv मुझे उस फ़ाइल की सुरक्षा प्रतिलिपि बनाने के लिए एक अच्छा अभ्यास मिला जिसे मैं cp -p origfile origfileYYYY-MM-DDपहले दिन की तारीख के साथ संशोधित करने जा रहा हूं ।

यदि बाकी सब कुछ विफल हो जाता है - मैं बैकअप लोगों को कॉल करता हूं और अंतिम ज्ञात "अच्छा" बैकअप से पुनर्स्थापित करने के लिए कहता हूं।


1

मुझे लगता है कि आप फ़ाइलों / निर्देशिकाओं का एक स्नैपशॉट बना सकते हैं /etc

पहले फ़ाइलों / आदि / निर्देशिका की एक सूची बनाएं:

# ls -lha /etc >> /snapshotofetc

और अगर आप में एक फ़ाइल बनाते हैं /etc

# touch testfile

और यदि आप /etcपहले की तरह स्नैपशॉट को रीटेक करते हैं तो हमने क्या किया है

# ls -lhs /etc /lastsnapshotofetc

और फिर आप इस तरह 2 फ़ाइलों के बीच अंतर की तुलना कर सकते हैं:

# diff /snapshotofetc /lastsnapshotofetc

1

वहाँ हमेशा radmind है । यदि आपको यह पसंद नहीं है तो आप उस परिवर्तन को सही तरीके से वापस कर सकते हैं।


0

क्या आप कॉन्फ़िगरेशन प्रबंधन की तलाश कर रहे हैं या फ़ाइल सिस्टम परिवर्तनों को ट्रैक / मॉनिटर कर रहे हैं?

यदि यह पहले है, तो मैं देखूंगा puppetया chefCFEngineवाणिज्यिक उद्देश्यों के लिए मौजूद है। puppetइन दिनों एक लोकप्रिय जानवर है।

यदि यह बाद में एक है, तो फ़ाइल सिस्टम परिवर्तनों की निगरानी करने के लिए आपको इसकी कड़ी मेहनत करनी पड़ती है, लेकिन inotifyफाइलसिस्टम ऑडिटिंग auditctlया एसजीआई जैसे कार्यक्रमों के उदाहरण हैं fam, लेकिन फिर से, यह एक निगरानी चीज है और महंगा कार्यान्वयन हो सकता है (फाइलसिस्टम का प्रदर्शन बिगड़ सकता है)।


एटकेटर केवल / आदि विशिष्ट सामान के लिए शांत निपुण हो सकता है।
निखिल मुल्ले

क्षमा करें कि यह अनिश्चित है। मैंने सवाल सुधार दिया।
टाफर

0

आप यह देख सकते हैं कि rsnapshotजो भी डायरेक्टरी आप चाहते हैं उसका प्रति घंटा स्नैपशॉट रखता है ... आप इसे 24 घंटे करने के लिए सेट कर सकते हैं, फिर एक्स डेली, फिर एक्स वीकली, आदि। जितना आप डिस्क स्थान के लिए चाहते हैं। यह हार्ड लिंक के लिए पर्याप्त स्मार्ट है जब फाइलें नहीं बदली हैं (यह rsyncपर्दे के पीछे का उपयोग करता है ।


0

आप का उपयोग करने पर विचार कर सकते हैं git। आप यह ट्रैकिंग परिवर्तनों में कुशल हैं और इस तरह की चीज़ के लिए उपयोग करना बहुत आसान है।

git status # Show changed files
git diff # Show file differences (paged automatically)
git commit -a # Commit all changes. 

मेरा मानना ​​है कि शुरुआती सेटअप इस तरह से है। मैंने इसे कुछ समय के लिए नहीं किया है।

cd /etc
git init
git add *
git commit -a -m "Created repository"

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

आप फ़ाइल को कई सर्वरों पर साझा करने के लिए क्लोनिंग का उपयोग करने में सक्षम हो सकते हैं।


0

मेरे पास एक स्क्रिप्ट है जो हर रोज चलती है और पिछले बैकअप से बदल चुकी फाइलों का बैकअप लेती है:

#!bin/bash
ext=$(date +"%Y%m%d")_ChangeS
mkdir -p "$1/$ext" && \
  ionice -c3 rsync -ah --numeric-ids --inplace --backup \
                   --backup-dir="$1/$ext" \
                   --include="/etc" / "$1" && \
  rmdir --ignore-fail-on-non-empty "$1/$ext"

आप उस मार्ग से गुजरते हैं जहाँ बैकअप बनाया जाएगा और उस निर्देशिका में इसके समान (कुछ रनों के बाद) सूची होगी:

20120106_ChangeS  etc
$ls 20120106_ChangeS/etc/
cron.d

बदलावों को रिकॉर्ड करने के लिए आप इसे थोड़ा संशोधित कर सकते हैं या जब स्क्रिप्ट में बदलाव होता है तो संशोधित संस्करण को ट्रिगर करने के लिए इनोटिफाई का उपयोग कर सकते हैं /etc

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.