ഓരോ X സെക്കൻഡിലും എന്നെന്നേക്കുമായി ഒരു Linux കമാൻഡ് എങ്ങനെ പ്രവർത്തിപ്പിക്കാം അല്ലെങ്കിൽ ആവർത്തിക്കാം


ഒരു സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർ പലപ്പോഴും ഒരു നിശ്ചിത കാലയളവിൽ ഒരു കമാൻഡ് ആവർത്തിച്ച് പ്രവർത്തിപ്പിക്കേണ്ടതുണ്ട്. പലപ്പോഴും ഇത്തരം ജോലികൾ ലളിതമായ ക്രോൺ കമാൻഡുകൾ ഉപയോഗിച്ച് എളുപ്പത്തിൽ പൂർത്തിയാക്കാൻ കഴിയും. മിക്ക കേസുകളിലും  ഇത് പ്രവർത്തിക്കണം, എന്നാൽ നിങ്ങൾക്ക് ക്രോൺ കമാൻഡ് പ്രവർത്തിപ്പിക്കാൻ കഴിയുന്ന ഏറ്റവും കുറഞ്ഞ കാലയളവ് ഓരോ മിനിറ്റിലും ആണ്. വിശ്വസിച്ചാലും ഇല്ലെങ്കിലും, പല കേസുകളിലും ഇത് വളരെ മന്ദഗതിയിലാണ്.

ഈ ട്യൂട്ടോറിയലിൽ, ഡിഫോൾട്ടായി ഓരോ 3 സെക്കൻഡിലും ടോപ്പ് കമാൻഡിന് സമാനമായി (പ്രക്രിയയും മെമ്മറി ഉപയോഗവും തുടർച്ചയായി നിരീക്ഷിക്കുക) തുടർച്ചയായി പ്രവർത്തിക്കുന്ന ഒരു പ്രത്യേക കമാൻഡ് നിരീക്ഷിക്കുന്നതിനോ നിരീക്ഷിക്കുന്നതിനോ ഉള്ള ഒരു ലളിതമായ സ്ക്രിപ്റ്റിംഗ് ടെക്നിക്കുകൾ നിങ്ങൾ പഠിക്കും.

എന്തുകൊണ്ടാണ് നിങ്ങൾ പലപ്പോഴും കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കേണ്ടതിന്റെ കാരണങ്ങൾ, ചർച്ച ചെയ്യാൻ ഞങ്ങൾ നിൽക്കില്ല. ഓരോരുത്തർക്കും അവരുടെ ദൈനംദിന ജോലികളിലോ വീട്ടിലെ പിസികളിലും ലാപ്uടോപ്പുകളിലും പോലും അതിന് വ്യത്യസ്ത കാരണങ്ങളുണ്ടെന്ന് ഞാൻ വിശ്വസിക്കുന്നു.

1. വാച്ച് കമാൻഡ് ഉപയോഗിക്കുക

വാച്ച് ഒരു ലിനക്സ് കമാൻഡാണ്, അത് ആനുകാലികമായി ഒരു കമാൻഡോ പ്രോഗ്രാമോ എക്സിക്യൂട്ട് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുകയും സ്ക്രീനിൽ ഔട്ട്പുട്ട് കാണിക്കുകയും ചെയ്യുന്നു. ഇതിനർത്ഥം നിങ്ങൾക്ക് കൃത്യസമയത്ത് പ്രോഗ്രാം ഔട്ട്പുട്ട് കാണാൻ കഴിയും എന്നാണ്. സ്ഥിരസ്ഥിതിയായി വാച്ച് ഓരോ 2 സെക്കൻഡിലും കമാൻഡ്/പ്രോഗ്രാം വീണ്ടും പ്രവർത്തിപ്പിക്കുന്നു. നിങ്ങളുടെ ആവശ്യകതകൾ നിറവേറ്റുന്നതിനായി ഇടവേള എളുപ്പത്തിൽ മാറ്റാവുന്നതാണ്.

“വാച്ച്” ഉപയോഗിക്കാൻ വളരെ എളുപ്പമാണ്, അത് പരീക്ഷിക്കുന്നതിന്, നിങ്ങൾക്ക് ഉടൻ തന്നെ ഒരു ലിനക്സ് ടെർമിനൽ ഫയർ ചെയ്ത് ഇനിപ്പറയുന്ന കമാൻഡ് ടൈപ്പ് ചെയ്യാം:

# watch free -m

മുകളിലുള്ള കമാൻഡ് നിങ്ങളുടെ സിസ്റ്റം ഫ്രീ മെമ്മറി പരിശോധിക്കുകയും ഓരോ രണ്ട് സെക്കൻഡിലും ഫ്രീ കമാൻഡിന്റെ ഫലങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുകയും ചെയ്യും.

മുകളിലെ ഔട്ട്uപുട്ട് അനുസരിച്ച്, നിങ്ങൾക്ക് (ഇടത്തുനിന്ന് വലത്തോട്ട്) അപ്uഡേറ്റ് ഇടവേള, എക്uസിക്യൂട്ട് ചെയ്യുന്ന കമാൻഡ്, നിലവിലെ സമയം എന്നിവയെക്കുറിച്ചുള്ള വിവരങ്ങൾ പ്രദർശിപ്പിക്കുന്ന ഒരു തലക്കെട്ടുണ്ട്. ഈ തലക്കെട്ട് മറയ്ക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, നിങ്ങൾക്ക് -t ഓപ്ഷൻ ഉപയോഗിക്കാം.

അടുത്ത ലോജിക്കൽ ചോദ്യം - എക്സിക്യൂഷൻ ഇടവേള എങ്ങനെ മാറ്റാം എന്നതാണ്. അതിനായി, നിങ്ങൾക്ക് -n ഓപ്ഷൻ ഉപയോഗിക്കാം, അത് കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യേണ്ട ഇടവേള വ്യക്തമാക്കുന്നു. ഈ ഇടവേള സെക്കൻഡിൽ വ്യക്തമാക്കിയിരിക്കുന്നു. അതിനാൽ ഓരോ 10 സെക്കൻഡിലും നിങ്ങളുടെ script.sh ഫയൽ റൺ ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് പറയാം, നിങ്ങൾക്ക് ഇത് ഇതുപോലെ ചെയ്യാം:

# watch -n 10 script.sh

മുകളിൽ കാണിച്ചിരിക്കുന്നത് പോലെ നിങ്ങൾ കമാൻഡ് പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, സ്uക്രിപ്റ്റ് സ്ഥിതി ചെയ്യുന്ന ഡയറക്uടറിയിലേക്ക് (15 cd കമാൻഡ് ഉദാഹരണങ്ങൾ പഠിക്കുക) നിങ്ങൾ cd ചെയ്യേണ്ടതുണ്ട് അല്ലെങ്കിൽ ആ സ്uക്രിപ്റ്റിലേക്കുള്ള മുഴുവൻ പാതയും വ്യക്തമാക്കേണ്ടതുണ്ട്.

വാച്ച് കമാൻഡിന്റെ മറ്റ് ഉപയോഗപ്രദമായ ഓപ്ഷനുകൾ ഇവയാണ്:

  1. -b – കമാൻഡിന്റെ എക്സിറ്റ് പൂജ്യമല്ലെങ്കിൽ ഒരു ബീപ്പ് ശബ്ദം സൃഷ്ടിക്കുന്നു.
  2. -c – ANSI കളർ സീക്വൻസുകളെ വ്യാഖ്യാനിക്കുന്നു.
  3. -d – കമാൻഡ് ഔട്ട്uപുട്ടിലെ മാറ്റങ്ങൾ ഹൈലൈറ്റ് ചെയ്യുന്നു.

ലോഗിൻ ചെയ്uത ഉപയോക്താക്കളെ നിരീക്ഷിക്കാനും സെർവർ പ്രവർത്തനസമയം നിരീക്ഷിക്കാനും ഓരോ കുറച്ച് സെക്കൻഡിലും തുടർച്ചയായ ഘട്ടത്തിൽ ശരാശരി ഔട്ട്uപുട്ട് ലോഡ് ചെയ്യാനും നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് പറയാം, തുടർന്ന് കാണിച്ചിരിക്കുന്നതുപോലെ ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക:

# watch uptime

കമാൻഡിൽ നിന്ന് പുറത്തുകടക്കാൻ, CTRL+C അമർത്തുക.

ഇവിടെ, uptime കമാൻഡ് പ്രവർത്തിക്കുകയും സ്ഥിരസ്ഥിതിയായി ഓരോ 2 സെക്കൻഡിലും അപ്ഡേറ്റ് ചെയ്ത ഫലങ്ങൾ പ്രദർശിപ്പിക്കുകയും ചെയ്യും.

Linux-ൽ, cp കമാൻഡ് ഉപയോഗിച്ച് ഫയലുകൾ ഒരു ലൊക്കേഷനിൽ നിന്ന് മറ്റൊരിടത്തേക്ക് പകർത്തുമ്പോൾ, ഡാറ്റയുടെ പുരോഗതി കാണിക്കില്ല, പകർത്തപ്പെടുന്ന ഡാറ്റയുടെ പുരോഗതി കാണാൻ, നിങ്ങൾക്ക് watch ഡിസ്ക് ഉപയോഗം തത്സമയം പരിശോധിക്കാൻ du -s കമാൻഡിനൊപ്പം കമാൻഡ് ചെയ്യുക.

# cp ubuntu-15.10-desktop-amd64.iso /home/tecmint/ &
# watch -n 0.1 du -s /home/tecmint/ubuntu-15.10-desktop-amd64.iso 

മേൽപ്പറഞ്ഞ പ്രക്രിയ നേടാൻ കഴിയാത്തത്ര സങ്കീർണ്ണമാണെന്ന് നിങ്ങൾ കരുതുന്നുവെങ്കിൽ, പകർത്തുമ്പോൾ ഡാറ്റയുടെ പുരോഗതി കാണിക്കുന്ന അഡ്വാൻസ് കോപ്പി കമാൻഡിലേക്ക് പോകാൻ ഞാൻ നിങ്ങളോട് നിർദ്ദേശിക്കുന്നു.

2. സ്ലീപ്പ് കമാൻഡ് ഉപയോഗിക്കുക

ഷെൽ സ്ക്രിപ്റ്റുകൾ ഡീബഗ് ചെയ്യാൻ സ്ലീപ്പ് ഉപയോഗിക്കാറുണ്ട്, എന്നാൽ ഇതിന് മറ്റ് പല ഉപയോഗപ്രദമായ ഉദ്ദേശ്യങ്ങളും ഉണ്ട്. ഉദാഹരണത്തിന്, for അല്ലെങ്കിൽ while ലൂപ്പുകളുമായി സംയോജിപ്പിക്കുമ്പോൾ, നിങ്ങൾക്ക് വളരെ മികച്ച ഫലങ്ങൾ ലഭിക്കും.

നിങ്ങൾ ബാഷ് സ്ക്രിപ്റ്റിംഗിൽ പുതിയ ആളാണെങ്കിൽ, ബാഷ് ലൂപ്പുകളെക്കുറിച്ചുള്ള ഞങ്ങളുടെ ഗൈഡ് നിങ്ങൾക്ക് ഇവിടെ പരിശോധിക്കാം.

\sleep\ കമാൻഡിനെക്കുറിച്ച് നിങ്ങൾ ആദ്യമായി കേൾക്കുന്ന സാഹചര്യത്തിൽ, ഒരു നിശ്ചിത സമയത്തേക്ക് എന്തെങ്കിലും വൈകിപ്പിക്കാൻ ഇത് ഉപയോഗിക്കുന്നു. സ്uക്രിപ്റ്റുകളിൽ, കമാൻഡ് 1 പ്രവർത്തിപ്പിക്കാനും 10 സെക്കൻഡ് കാത്തിരിക്കാനും തുടർന്ന് കമാൻഡ് 2 പ്രവർത്തിപ്പിക്കാനും നിങ്ങളുടെ സ്uക്രിപ്റ്റിനോട് പറയാൻ നിങ്ങൾക്ക് ഇത് ഉപയോഗിക്കാം.

മുകളിലെ ലൂപ്പുകൾ ഉപയോഗിച്ച്, നിങ്ങൾക്ക് ബാഷിനോട് ഒരു കമാൻഡ് പ്രവർത്തിപ്പിക്കാനും N തുക സെക്കൻഡ് ഉറങ്ങാനും തുടർന്ന് കമാൻഡ് വീണ്ടും പ്രവർത്തിപ്പിക്കാനും കഴിയും.

രണ്ട് ലൂപ്പുകളുടെയും ഉദാഹരണങ്ങൾ നിങ്ങൾക്ക് ചുവടെ കാണാൻ കഴിയും:

# for i in {1..10}; do echo -n "This is a test in loop $i "; date ; sleep 5; done

മുകളിലെ ഒരു ലൈനർ, എക്കോ കമാൻഡ് പ്രവർത്തിപ്പിക്കുകയും നിലവിലെ തീയതി പ്രദർശിപ്പിക്കുകയും ചെയ്യും, മൊത്തം 10 തവണ, എക്സിക്യൂഷനുകൾക്കിടയിൽ 5 സെക്കൻഡ് ഉറക്കം.

ഒരു സാമ്പിൾ ഔട്ട്പുട്ട് ഇതാ:

This is a test in loop 1 Wed Feb 17 20:49:47 EET 2016
This is a test in loop 2 Wed Feb 17 20:49:52 EET 2016
This is a test in loop 3 Wed Feb 17 20:49:57 EET 2016
This is a test in loop 4 Wed Feb 17 20:50:02 EET 2016
This is a test in loop 5 Wed Feb 17 20:50:07 EET 2016
This is a test in loop 6 Wed Feb 17 20:50:12 EET 2016
This is a test in loop 7 Wed Feb 17 20:50:17 EET 2016
This is a test in loop 8 Wed Feb 17 20:50:22 EET 2016
This is a test in loop 9 Wed Feb 17 20:50:27 EET 2016
This is a test in loop 10 Wed Feb 17 20:50:32 EET 2016

നിങ്ങളുടെ സ്വന്തം കമാൻഡുകൾ അല്ലെങ്കിൽ സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് എക്കോ, ഡേറ്റ് കമാൻഡുകൾ മാറ്റാനും നിങ്ങളുടെ ആവശ്യങ്ങൾക്കനുസരിച്ച് ഉറക്ക ഇടവേള മാറ്റാനും കഴിയും.

# while true; do echo -n "This is a test of while loop";date ; sleep 5; done

സാമ്പിൾ ഔട്ട്പുട്ട് ഇതാ:

This is a test of while loopWed Feb 17 20:52:32 EET 2016
This is a test of while loopWed Feb 17 20:52:37 EET 2016
This is a test of while loopWed Feb 17 20:52:42 EET 2016
This is a test of while loopWed Feb 17 20:52:47 EET 2016
This is a test of while loopWed Feb 17 20:52:52 EET 2016
This is a test of while loopWed Feb 17 20:52:57 EET 2016

ഉപയോക്താവ് കൊല്ലപ്പെടുകയോ തടസ്സപ്പെടുത്തുകയോ ചെയ്യുന്നതുവരെ മുകളിലെ കമാൻഡ് പ്രവർത്തിക്കും. നിങ്ങൾക്ക് പശ്ചാത്തലത്തിൽ പ്രവർത്തിക്കുന്ന ഒരു കമാൻഡ് പ്രവർത്തിപ്പിക്കണമെങ്കിൽ ക്രോണിൽ കണക്കാക്കാൻ താൽപ്പര്യമില്ലെങ്കിൽ ഇത് ഉപയോഗപ്രദമാകും.

പ്രധാനം: മുകളിൽ പറഞ്ഞ രീതികൾ ഉപയോഗിക്കുമ്പോൾ, അടുത്ത എക്സിക്യൂഷന് മുമ്പായി നിങ്ങളുടെ കമാൻഡിന് മതിയായ സമയം നൽകുന്നതിന് ആവശ്യമായ ഇടവേള സജ്ജീകരിക്കാൻ ശുപാർശ ചെയ്യുന്നു.

ഉപസംഹാരം

ഈ ട്യൂട്ടോറിയലിലെ സാമ്പിളുകൾ ഉപയോഗപ്രദമാണ്, എന്നാൽ ക്രോൺ യൂട്ടിലിറ്റി പൂർണ്ണമായും മാറ്റിസ്ഥാപിക്കാൻ ഉദ്ദേശിച്ചുള്ളതല്ല. നിങ്ങൾക്ക് ഏറ്റവും മികച്ചത് ഏതെന്ന് കണ്ടെത്തേണ്ടത് നിങ്ങളാണ്, എന്നാൽ രണ്ട് സാങ്കേതികതകളുടെയും ഉപയോഗം നമുക്ക് വേർതിരിക്കണമെങ്കിൽ, ഞാൻ ഇത് പറയും:

  1. സിസ്റ്റം റീബൂട്ട് ചെയ്തതിനു ശേഷവും നിങ്ങൾക്ക് ആനുകാലികമായി കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കേണ്ടിവരുമ്പോൾ ക്രോൺ ഉപയോഗിക്കുക.
  2. നിലവിലെ ഉപയോക്തൃ സെഷനിൽ പ്രവർത്തിക്കാൻ ഉദ്ദേശിച്ചുള്ള പ്രോഗ്രാമുകൾ/സ്ക്രിപ്റ്റുകൾക്ക് ഈ ട്യൂട്ടോറിയലിൽ വിശദീകരിച്ചിരിക്കുന്ന രീതികൾ ഉപയോഗിക്കുക.

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