ലിനക്സിൽ Etckeeper ഉപയോഗിച്ച് പതിപ്പ് നിയന്ത്രണം ഉപയോഗിച്ച് /etc എങ്ങനെ കൈകാര്യം ചെയ്യാം


Unix/Linux ഡയറക്ടറി ഘടനയിൽ, ഹോസ്റ്റ്-നിർദ്ദിഷ്ട സിസ്റ്റം-വൈഡ് കോൺഫിഗറേഷൻ ഫയലുകളും ഡയറക്uടറികളും സ്ഥിതി ചെയ്യുന്നിടത്താണ് /etc ഡയറക്uടറി; എല്ലാ സിസ്റ്റം-വൈഡ് കോൺഫിഗറേഷൻ ഫയലുകൾക്കുമുള്ള ഒരു കേന്ദ്ര സ്ഥാനമാണിത്. ഒരു പ്രോഗ്രാം എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്നത് നിയന്ത്രിക്കാൻ ഉപയോഗിക്കുന്ന ഒരു ലോക്കൽ ഫയലാണ് കോൺഫിഗറേഷൻ ഫയൽ - അത് സ്റ്റാറ്റിക് ആയിരിക്കണം കൂടാതെ എക്സിക്യൂട്ടബിൾ ബൈനറി ആകാൻ കഴിയില്ല.

സിസ്റ്റം കോൺഫിഗറേഷൻ ഫയലുകളിലെ മാറ്റങ്ങളുടെ ട്രാക്ക് സൂക്ഷിക്കാൻ, സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർമാർ സാധാരണയായി കോൺഫിഗറേഷൻ ഫയലുകൾ പരിഷ്കരിക്കുന്നതിന് മുമ്പ് അവയുടെ പകർപ്പുകൾ (അല്ലെങ്കിൽ ബാക്കപ്പുകൾ) ഉണ്ടാക്കുന്നു. അതുവഴി അവർ യഥാർത്ഥ ഫയൽ നേരിട്ട് പരിഷ്ക്കരിക്കുകയും തെറ്റ് വരുത്തുകയും ചെയ്താൽ, അവർക്ക് സംരക്ഷിച്ച പകർപ്പിലേക്ക് മടങ്ങാനാകും.

പതിപ്പ് നിയന്ത്രണം ഉപയോഗിച്ച് നിയന്ത്രിക്കാൻ /etc അനുവദിക്കുന്നതിനുള്ള ലളിതവും ഉപയോഗിക്കാൻ എളുപ്പമുള്ളതും മോഡുലറും കോൺഫിഗർ ചെയ്യാവുന്നതുമായ ഉപകരണങ്ങളുടെ ശേഖരമാണ് Etckeeper. /etc ഡയറക്uടറിയിലെ മാറ്റങ്ങൾ ഒരു പതിപ്പ് നിയന്ത്രണ സംവിധാനത്തിൽ (VCS) സംഭരിക്കാൻ ഇത് നിങ്ങളെ പ്രാപ്uതമാക്കുന്നു, അതായത് git (ഇത് മുൻഗണനയുള്ള VCS ആണ്), മെർക്കുറിയൽ, ബസാർ അല്ലെങ്കിൽ darcs റിപ്പോസിറ്ററി. ഒരു പിശക് സംഭവിച്ചാൽ, /etc എന്നതിലേക്ക് വരുത്തിയ മാറ്റങ്ങൾ അവലോകനം ചെയ്യാനോ പഴയപടിയാക്കാനോ git ഉപയോഗിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.

അതിന്റെ മറ്റ് സവിശേഷതകൾ ഇവയാണ്:

  1. പാക്കേജ് അപ്uഗ്രേഡ് സമയത്ത് /etc എന്നതിലേക്ക് സ്വയമേവ വരുത്തിയ മാറ്റങ്ങൾ വരുത്തുന്നതിന് Zypper, pacman-g2 എന്നിവയുൾപ്പെടെയുള്ള ഫ്രണ്ട്-എൻഡ് പാക്കേജ് മാനേജർമാരുമായുള്ള സംയോജനത്തെ ഇത് പിന്തുണയ്ക്കുന്നു.
  2. ജിറ്റ് സാധാരണയായി പിന്തുണയ്ക്കാത്ത ഫയൽ മെറ്റാഡാറ്റ (ഫയൽ അനുമതികൾ പോലുള്ളവ) ട്രാക്ക് ചെയ്യുന്നു, എന്നാൽ ഇത് /etc, കൂടാതെ
  3. എന്നിവയ്ക്ക് പ്രധാനമാണ്
  4. ഇതിൽ ഒരു ക്രോൺ ജോലിയും systemd ടൈമറും ഉൾപ്പെടുന്നു, ഓരോന്നിനും പ്രതിദിനം ഒരു പ്രാവശ്യം സ്വയമേവ /etc ലേക്ക് പുറത്തുകടക്കുന്ന മാറ്റങ്ങൾ വരുത്താനാകും.

ലിനക്സിൽ Etckeeper എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം

ഡെബിയൻ, ഉബുണ്ടു, ഫെഡോറ, മറ്റ് ലിനക്സ് വിതരണങ്ങളിൽ Etckeeper ലഭ്യമാണ്. ഇത് ഇൻസ്റ്റാൾ ചെയ്യാൻ, കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങളുടെ ഡിഫോൾട്ട് പാക്കേജ് മാനേജർ ഉപയോഗിക്കുക. ഈ കമാൻഡ് ജിറ്റും മറ്റ് ചില പാക്കേജുകളും ഡിപൻഡൻസികളായി ഇൻസ്റ്റാൾ ചെയ്യുമെന്നത് ശ്രദ്ധിക്കുക.

$ sudo apt-get install etckeeper	#Ubuntu and Debian
# apt-get install etckeeper		#Debian as root user
# dnf install etckeeper			#Fedora 22+
$ sudo zypper install etckeeper	        #OpenSUSE 15

RedHat Enterprise Linux (RHEL), CentOS എന്നിവയും മറ്റും പോലെയുള്ള എന്റർപ്രൈസ് ലിനക്സ് വിതരണങ്ങളിൽ, കാണിച്ചിരിക്കുന്നതുപോലെ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുമുമ്പ് നിങ്ങൾ EPEL ശേഖരം ചേർക്കേണ്ടതുണ്ട്.

# yum install epel-release
# yum install etckeeper

ലിനക്സിൽ Etckeeper കോൺഫിഗർ ചെയ്യുന്നു

മുകളിൽ കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾ etckeeper ഇൻസ്റ്റാൾ ചെയ്തുകഴിഞ്ഞാൽ, അത് എങ്ങനെ പ്രവർത്തിക്കുമെന്ന് നിങ്ങൾ കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്, അതിന്റെ പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ /etc/etckeeper/etckeeper.conf ആണ്. എഡിറ്റിംഗിനായി ഇത് തുറക്കാൻ, കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങളുടെ പ്രിയപ്പെട്ട ഏതെങ്കിലും ടെക്സ്റ്റ് അധിഷ്ഠിത എഡിറ്റർ ഉപയോഗിക്കുക.

# vim /etc/etckeeper/etckeeper.conf
OR
$ sudo nano /etc/etckeeper/etckeeper.conf

ഫയലിൽ നിരവധി കോൺഫിഗറേഷൻ ഓപ്uഷനുകൾ അടങ്ങിയിരിക്കുന്നു (ഓരോന്നിനും ചെറുതും വ്യക്തമായ ഉപയോഗ വിവരണവും) അത് ഉപയോഗിക്കുന്നതിന് പതിപ്പ് നിയന്ത്രണ സംവിധാനം (വിസിഎസ്) സജ്ജമാക്കാനും വിഎസ്uസിയിലേക്ക് ഓപ്uഷനുകൾ കൈമാറാനും നിങ്ങളെ അനുവദിക്കുന്നു; ടൈമർ പ്രവർത്തനക്ഷമമാക്കാനോ പ്രവർത്തനരഹിതമാക്കാനോ, പ്രത്യേക ഫയൽ മുന്നറിയിപ്പ് പ്രവർത്തനക്ഷമമാക്കാനോ അപ്രാപ്തമാക്കാനോ, ഇൻസ്റ്റാളേഷന് മുമ്പായി നിലവിലുള്ള മാറ്റങ്ങൾ /etc ചെയ്യുന്നതിൽ നിന്നും etckeeper പ്രവർത്തനക്ഷമമാക്കുക അല്ലെങ്കിൽ പ്രവർത്തനരഹിതമാക്കുക.

കൂടാതെ, etckeeper-നൊപ്പം പ്രവർത്തിക്കാൻ നിങ്ങൾക്ക് ഫ്രണ്ട്-എൻഡ് അല്ലെങ്കിൽ ഉയർന്ന ലെവൽ പാക്കേജ് മാനേജർ (rpm മുതലായവ) സജ്ജമാക്കാൻ കഴിയും.

നിങ്ങൾ ഫയലിൽ എന്തെങ്കിലും മാറ്റങ്ങൾ വരുത്തിയിട്ടുണ്ടെങ്കിൽ, അത് സേവ് ചെയ്ത് ഫയൽ അടയ്ക്കുക.

Git റിപ്പോസിറ്ററി ആരംഭിക്കുകയും പ്രാരംഭ കമ്മിറ്റ് നടത്തുകയും ചെയ്യുക

ഇപ്പോൾ നിങ്ങൾ etcകീപ്പർ ക്രമീകരിച്ചുകഴിഞ്ഞു, നിങ്ങളുടെ /etc ഡയറക്uടറിയിലെ എന്തെങ്കിലും മാറ്റങ്ങൾ താഴെ പറയുന്ന രീതിയിൽ ട്രാക്ക് ചെയ്യാൻ നിങ്ങൾ Git റിപ്പോസിറ്ററി ആരംഭിക്കേണ്ടതുണ്ട്. റൂട്ട് അനുമതികളോടെ മാത്രമേ നിങ്ങൾക്ക് etc കീപ്പർ പ്രവർത്തിപ്പിക്കാൻ കഴിയൂ, അല്ലാത്തപക്ഷം sudo ഉപയോഗിക്കുക.

$ cd 
$ sudo etckeeper init

അടുത്തതായി, etckeeper-ന് സ്വയമേവ പ്രവർത്തിക്കാൻ കഴിയുന്നതിനുള്ള ഘട്ടം, ഇനിപ്പറയുന്ന രീതിയിൽ /etc-ലെ മാറ്റങ്ങളുടെ ട്രാക്ക് സൂക്ഷിക്കാൻ ആരംഭിക്കുന്നതിനുള്ള ആദ്യ പ്രതിബദ്ധത നിങ്ങൾ പ്രവർത്തിപ്പിക്കേണ്ടതുണ്ട്.

$ sudo etckeeper commit "first commit"

നിങ്ങളുടെ ആദ്യ കമ്മിറ്റ് പ്രവർത്തിപ്പിച്ചതിന് ശേഷം, git വഴി etc കീപ്പർ ഇപ്പോൾ /etc ഡയറക്uടറിയിലെ മാറ്റങ്ങൾ ട്രാക്ക് ചെയ്യുന്നു. ഇപ്പോൾ ഏതെങ്കിലും കോൺഫിഗറേഷൻ ഫയലുകളിൽ എന്തെങ്കിലും മാറ്റങ്ങൾ വരുത്താൻ ശ്രമിക്കുക.

അവസാന കമ്മിറ്റ് മുതൽ മാറിയ ഫയലുകൾ കാണിക്കാൻ ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക; ഈ കമാൻഡ് പ്രധാനമായും /etc എന്നതിലെ മാറ്റങ്ങൾ കാണിക്കുന്നു, ഇവിടെ വിസിഎസ് എന്നാൽ git ആണ്, \status എന്നത് git ഉപ-കമാൻഡ് ആണ്.

$ sudo etckeeper vcs status

തുടർന്ന് സമീപകാല മാറ്റങ്ങൾ ഇനിപ്പറയുന്ന രീതിയിൽ ചെയ്യുക.

$ sudo etckeeper commit "changed hosts and phpmyadmin config files"

എല്ലാ കമ്മിറ്റുകളുടെയും ഒരു ലോഗ് കാണുന്നതിന് (ഓരോ കമ്മിറ്റിന്റെയും ഐഡിയും അഭിപ്രായവും), നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കാം.

$ sudo etckeeper vcs log

നിങ്ങൾക്ക് ഒരു പ്രതിബദ്ധതയുടെ വിശദാംശങ്ങൾ കാണിക്കാനും കഴിയും, കാണിച്ചിരിക്കുന്നതുപോലെ കമ്മിറ്റ് ഐഡി (ആദ്യത്തെ കുറച്ച് പ്രതീകങ്ങൾക്ക് പ്രവർത്തിക്കാൻ കഴിയും) വ്യക്തമാക്കുക.:

$ sudo etckeeper vcs show a153b68479d0c440cc42c228cbbb6984095f322d
OR
$ sudo etckeeper vcs show a153b6847

കൂടാതെ, കാണിച്ചിരിക്കുന്നതുപോലെ രണ്ട് കമ്മിറ്റുകൾ തമ്മിലുള്ള വ്യത്യാസം നിങ്ങൾക്ക് കാണാൻ കഴിയും. അടുത്ത വിഭാഗത്തിൽ കാണിച്ചിരിക്കുന്നതുപോലെ മാറ്റങ്ങൾ അസാധുവാക്കണമെങ്കിൽ ഇത് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്. മുകളിലേക്കും താഴേക്കും അല്ലെങ്കിൽ ഇടത്തോട്ടും വലത്തോട്ടും സ്ക്രോൾ ചെയ്യാൻ നിങ്ങൾക്ക് അമ്പടയാള കീകൾ ഉപയോഗിക്കാം, കൂടാതെ q അമർത്തി പുറത്തുകടക്കുക.

$ sudo etckeeper vcs show 704cc56 a153b6847

നിങ്ങളുടെ /etc ഡയറക്uടറിയിലെ മാറ്റങ്ങൾ ട്രാക്ക് ചെയ്യാനും ആവശ്യമുള്ളിടത്ത് മാറ്റങ്ങൾ റിവേഴ്uസ് ചെയ്യാനും നിങ്ങളെ സഹായിക്കുക എന്നതാണ് etckeeper-ന്റെ സാരം. നിങ്ങൾ അവസാനം എഡിറ്റ് ചെയ്തപ്പോൾ /etc/nginx/nginx.conf-ൽ ചില പിഴവുകൾ സംഭവിച്ചുവെന്ന് നിങ്ങൾ മനസ്സിലാക്കുകയും കോൺഫിഗറേഷൻ ഘടനയിലെ പിശകുകൾ കാരണം Nginx സേവനം പുനരാരംഭിക്കാൻ കഴിയാതെ വരികയും ചെയ്താൽ, നിങ്ങൾക്ക് ഒരു നിർദ്ദിഷ്ട പകർപ്പിൽ സംരക്ഷിച്ച പകർപ്പിലേക്ക് മടങ്ങാനാകും. ഇനിപ്പറയുന്ന രീതിയിൽ കോൺഫിഗറേഷൻ ശരിയാണെന്ന് നിങ്ങൾ കരുതുന്നിടത്ത് (ഉദാ. 704cc56) കമ്മിറ്റ് ചെയ്യുക.

$ sudo etckeeper vcs checkout 704cc56 /etc/nginx/nginx.conf

പകരമായി, നിങ്ങൾക്ക് എല്ലാ മാറ്റങ്ങളും റദ്ദാക്കുകയും ഒരു പ്രത്യേക കമ്മിറ്റിൽ സംഭരിച്ചിരിക്കുന്ന /etc (അതിന്റെ ഉപ-ഡയറക്uടറികൾ) എന്നതിന് കീഴിലുള്ള എല്ലാ ഫയലുകളുടെയും പതിപ്പുകളിലേക്ക് മടങ്ങുകയും ചെയ്യാം.

$ sudo etckeeper vcs checkout 704cc56 

സ്വയമേവ പ്രതിബദ്ധതയുള്ള മാറ്റങ്ങൾ എങ്ങനെ പ്രാപ്തമാക്കാം

പാക്കേജിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന Systemd-നുള്ള സേവനവും ടൈമർ യൂണിറ്റുകളും ഉപയോഗിച്ച് Etckeeper അയയ്ക്കുന്നു. /etc ഡയറക്uടറിയിലെ മാറ്റങ്ങളുടെ \ഓട്ടോകമ്മിറ്റ് സമാരംഭിക്കുന്നതിന്, ഇപ്പോൾ etckeeper.timer യൂണിറ്റ് ആരംഭിച്ച് താഴെപ്പറയുന്ന രീതിയിൽ പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കുക.

$ sudo systemctl start etckeeper.timer
$ sudo systemctl status etckeeper.timer

കൂടാതെ, കാണിച്ചിരിക്കുന്നതുപോലെ സിസ്റ്റം ബൂട്ടിൽ യാന്ത്രികമായി ആരംഭിക്കാൻ ഇത് പ്രാപ്തമാക്കുക.

$ sudo systemctl enable etckeeper.timer

കൂടുതൽ വിവരങ്ങൾക്ക്, Etckeeper പ്രോജക്റ്റ് പേജ് കാണുക: https://etckeeper.branchable.com/.

ഈ ഗൈഡിൽ, git പോലെയുള്ള പതിപ്പ് നിയന്ത്രണ സംവിധാനത്തിലെ (VCS) /etc ഡയറക്uടറിയിലെ സ്റ്റോർ മാറ്റങ്ങൾക്കായി etckeeper എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും ഉപയോഗിക്കാമെന്നും ഞങ്ങൾ കാണിച്ചുതന്നിട്ടുണ്ട്. >/etc, ആവശ്യമുള്ളിടത്ത്. ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം വഴി നിങ്ങളുടെ ചിന്തകൾ പങ്കിടുക അല്ലെങ്കിൽ etckeeper-നെക്കുറിച്ചുള്ള ചോദ്യങ്ങൾ ചോദിക്കുക.