എല്ലാ മാസവും ക്രോൺ ചെയ്യുക. ക്രോൺ - ഒരു നിശ്ചിത സമയത്ത് ഉപയോക്തൃ പ്രോഗ്രാമുകൾ പ്രവർത്തിപ്പിക്കുന്നു. ക്രോൺ ജോബ് ഷെഡ്യൂളർ ശരിയായി കോൺഫിഗർ ചെയ്യുന്നു

Unix OS-ൽ, ഉപയോക്താവ് വ്യക്തമാക്കിയ സമയത്ത് ഉപയോക്തൃ പ്രോഗ്രാമുകൾ സമാരംഭിക്കാൻ സാധിക്കും. ഇത് ചെയ്യുന്നതിന്, ക്രോൺ പ്രോഗ്രാം ഉപയോഗിക്കുന്നു, അത് ഉപയോക്താക്കളിൽ നിന്ന് നിർദ്ദേശങ്ങൾ സ്വീകരിക്കുകയും, അവരെ പിന്തുടർന്ന്, സ്വീകരിച്ച സ്ക്രിപ്റ്റുകൾക്കനുസരിച്ച് ഏതെങ്കിലും ജോലികൾ ചെയ്യുകയും ചെയ്യുന്നു. ആനുകാലികമായ ജോലികൾ ചെയ്യാൻ ഞങ്ങളുടെ ഉപഭോക്താക്കൾക്ക് ഈ സവിശേഷത ഉപയോഗിക്കാനാകും.

നിങ്ങളുടെ സ്വകാര്യ അക്കൗണ്ടിൽ ക്രോൺ എങ്ങനെ സജ്ജീകരിക്കാം (unix താരിഫുകൾക്കായി)

എല്ലാ PHP പ്രോഗ്രാമുകളും SAPI CLI വഴി മുൻകൂർ പരിഷ്ക്കരണമില്ലാതെ പ്രവർത്തിപ്പിക്കാൻ കഴിയാത്തതിനാൽ, നിങ്ങൾക്ക് അവയിലൂടെ പ്രവർത്തിപ്പിക്കാൻ കഴിയും wget. ഉദാഹരണത്തിന്:

/usr/local/bin/wget -O /dev/null -q http://mysite.tld/cron.php?action=123

സ്ക്രിപ്റ്റ് ഫംഗ്ഷനുകൾ ഉപയോഗിക്കുകയാണെങ്കിൽ ആവശ്യപ്പെടുന്നു, ഉൾപ്പെടുന്നു, അവയിൽ ആപേക്ഷിക പാതകൾ അടങ്ങിയിരിക്കുന്നു, തുടർന്ന് എക്സിക്യൂട്ട് ചെയ്യുന്ന സ്ക്രിപ്റ്റിൻ്റെ തുടക്കത്തിൽ, ഒരു ഫംഗ്ഷൻ കോൾ ഉപയോഗിക്കുക chdir(), ഇത് നിലവിലെ വർക്കിംഗ് ഡയറക്ടറി സജ്ജമാക്കും.

ക്രോൺ പ്രവർത്തിപ്പിക്കുന്ന പ്രോഗ്രാമുകളിൽ നിന്ന് പിശക് സന്ദേശങ്ങൾ എങ്ങനെ സ്വീകരിക്കാം

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

[email protected]

തീർച്ചയായും, [email protected]അറിയിപ്പുകൾ ഡെലിവറി ചെയ്യുന്ന ഒരു യഥാർത്ഥ ഇമെയിൽ വിലാസം ഉപയോഗിച്ച് നിങ്ങൾ അത് മാറ്റിസ്ഥാപിക്കേണ്ടതുണ്ട്. നിങ്ങൾക്ക് നിരവധി വിലാസങ്ങളിലേക്ക് പിശക് സന്ദേശങ്ങൾ ലഭിക്കണമെങ്കിൽ, കോമകളാൽ വേർതിരിച്ചിരിക്കുന്ന ഈ വിലാസങ്ങളെല്ലാം വ്യക്തമാക്കുക.

പ്രവർത്തിക്കുന്ന സ്ക്രിപ്റ്റ് ഔട്ട്പുട്ട് എന്താണെന്ന് ക്രോൺ മെയിൽ വഴി അയയ്ക്കുമെന്നത് ശ്രദ്ധിക്കുക. ഉദാഹരണത്തിന്, നിങ്ങൾ "ഹലോ, വേൾഡ്" എന്ന വരി പ്രിൻ്റ് ചെയ്യുന്ന ഒരു സ്ക്രിപ്റ്റ് എഴുതുകയും അത് ക്രോണിലൂടെ പ്രവർത്തിപ്പിക്കുകയും ചെയ്താൽ, ക്രോൺ അത്തരം ഒരു സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുമ്പോഴെല്ലാം "ഹലോ, വേൾഡ്" എന്ന വരിയുള്ള ഒരു ഇമെയിൽ നിങ്ങൾക്ക് ലഭിക്കും.

ഇത് ഒഴിവാക്കാൻ, ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് സ്ക്രിപ്റ്റ് പ്രകാരം ടെക്സ്റ്റ് ഔട്ട്പുട്ട് ആവശ്യമില്ലെങ്കിൽ, നിങ്ങൾ പ്രതീകങ്ങൾ ചേർക്കേണ്ടതുണ്ട്

> /dev/null 2>&1

ക്രോണിനായുള്ള പൂർണ്ണമായ വരി ഇതുപോലെ കാണപ്പെടും:

0 1 * * * /usr/local/bin/php -q $HOME/script.php > /dev/null 2>&1

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

/usr/local/bin/php -l script.php

സ്‌ക്രിപ്റ്റിൽ പിശകുകളൊന്നും ഇല്ലെങ്കിൽ, "script.php-ൽ വാക്യഘടന പിശകുകളൊന്നും കണ്ടെത്തിയില്ല" എന്ന സന്ദേശം നിങ്ങൾ കാണും.

നിയന്ത്രണങ്ങൾ

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

ഉബുണ്ടു സെർവറിലെ ഞങ്ങളുടെ മെറ്റീരിയലുകൾ ഒരു ഷെഡ്യൂളിൽ ചില ടാസ്‌ക്കുകൾ പ്രവർത്തിപ്പിക്കുന്നതിൻ്റെ പ്രശ്‌നത്തിൽ ഇടയ്ക്കിടെ സ്പർശിക്കുന്നു. ഓരോ തവണയും ഒരേ കാര്യം വിശദീകരിക്കാതിരിക്കാൻ, ഈ മെറ്റീരിയൽ സൃഷ്ടിക്കാൻ ഞങ്ങൾ തീരുമാനിച്ചു, ഇത് സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർമാരെ സഹായിക്കുകയും ലിനക്സിൽ ടാസ്ക് ഷെഡ്യൂളർ ഫലപ്രദമായി ഉപയോഗിക്കുകയും ചെയ്യും.

ഉബുണ്ടു സെർവറിൽ, ഇത് ഒരു ടാസ്ക് ഷെഡ്യൂളറായി ഉപയോഗിക്കുന്നു ക്രോൺ- കമാൻഡ് ലൈൻ ഇൻ്റർഫേസുള്ള ഷെഡ്യൂളർ. ഇത് സിസ്റ്റത്തിൻ്റെ ഒരു പ്രധാന ഭാഗമാണ്, കൂടാതെ ഇൻസ്റ്റാളേഷൻ കഴിഞ്ഞയുടനെ പ്രവർത്തിക്കാൻ തുടങ്ങുന്നു, വിവിധ സിസ്റ്റം ജോലികൾ ചെയ്യുന്നു. ഇത് ഞങ്ങളുടെ സേവനത്തിൽ ഉൾപ്പെടുത്തുക എന്നതാണ് ഞങ്ങളുടെ ലക്ഷ്യം, പ്രത്യേകിച്ചും ഇത് തോന്നുന്നത്ര ബുദ്ധിമുട്ടുള്ള കാര്യമല്ല.

രണ്ട് തരത്തിലുള്ള ഷെഡ്യൂളുകൾ ഉണ്ട് ക്രോൺ: ഉപയോക്താവും സിസ്റ്റവും. ആദ്യത്തേത് ഉപയോക്താക്കൾ സൃഷ്‌ടിക്കുകയും ഉപയോക്തൃ അവകാശങ്ങൾ കണക്കിലെടുത്ത് നടപ്പിലാക്കുകയും ചെയ്യുന്നു എന്നതിൽ അവ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു, രണ്ടാമത്തേത് അഡ്മിനിസ്ട്രേറ്റീവ് അല്ലെങ്കിൽ സിസ്റ്റം ആവശ്യങ്ങൾക്കായി ഉപയോഗിക്കുന്നു, ഏത് ഉപയോക്താവിന് വേണ്ടിയും സമാരംഭിക്കാനാകും.

ഒരു ഇഷ്ടാനുസൃത ഷെഡ്യൂൾ സൃഷ്ടിക്കുന്നതിനോ മാറ്റുന്നതിനോ, കമാൻഡ് നൽകുക:

ക്രോണ്ടാബ് -ഇ

നിങ്ങൾ ഇത് ആദ്യമായി സമാരംഭിക്കുമ്പോൾ, ഒരു എഡിറ്റർ തിരഞ്ഞെടുക്കാൻ യൂട്ടിലിറ്റി നിങ്ങളോട് ആവശ്യപ്പെടും; തിരഞ്ഞെടുക്കാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു mcedit(mc ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്), അല്ലെങ്കിൽ നിങ്ങൾക്ക് എങ്ങനെ പ്രവർത്തിക്കണമെന്ന് അറിയാവുന്ന മറ്റൊരു എഡിറ്റർ.

ഷെഡ്യൂൾ ലൈനുകളുടെ ഫോർമാറ്റ് ഇതാണ്:

മിനിറ്റ് മണിക്കൂർ ദിവസം മാസം day_of_week കമാൻഡ്

  • മിനിറ്റ്- 0 മുതൽ 59 വരെയുള്ള മിനിറ്റുകളിൽ സമയം
  • മണിക്കൂർ- 0 മുതൽ 23 വരെ
  • ദിവസം- മാസത്തിലെ ദിവസം 1 മുതൽ 31 വരെ
  • മാസം- 1 മുതൽ 12 വരെ അല്ലെങ്കിൽ അക്ഷര പദവികൾ ജനുവരി - ഡിസംബർ
  • ആഴ്ചയിലെ ദിവസം- 0 മുതൽ 6 വരെ (0 - ഞായർ) അല്ലെങ്കിൽ ശനി - സൂര്യൻ
  • ടീം- കമാൻഡ് ഇൻ്റർപ്രെറ്ററിൻ്റെ ഫോർമാറ്റിലുള്ള ഒരു സ്ട്രിംഗ്, അത് എക്സിക്യൂട്ട് ചെയ്യും, ഇതുപോലെ എഴുതുന്നു ടീം1 && ടീം2ഒരു വരിയിൽ നിരവധി കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കാൻ.

മിനിറ്റ്, മണിക്കൂർ, ദിവസങ്ങൾ എന്നിവയുടെ മൂല്യങ്ങൾ ഇനിപ്പറയുന്ന രീതിയിൽ വ്യക്തമാക്കാം:

  • അർത്ഥം- തീയതിയോ സമയമോ സൂചിപ്പിക്കുന്ന ഒരു നമ്പർ, ഒരു വൈൽഡ്കാർഡ് അനുവദനീയമാണ് * മൂല്യങ്ങളുടെ മുഴുവൻ ശ്രേണിയും അനുവദിക്കുന്നു
  • ഒന്നിലധികം മൂല്യങ്ങൾ- കോമകളാൽ വേർതിരിച്ച നിരവധി മൂല്യങ്ങൾ വ്യക്തമാക്കാൻ ഇത് അനുവദിച്ചിരിക്കുന്നു, ഉദാഹരണത്തിന് 2,14,22
  • മൂല്യങ്ങളുടെ ശ്രേണി- ഒരു ഹൈഫൻ ഉപയോഗിച്ച് സൂചിപ്പിച്ചിരിക്കുന്നു, ഉദാഹരണത്തിന് 2-10
  • മൂല്യ ഘട്ടം- ഒരു ഭിന്നസംഖ്യയിലൂടെ സൂചിപ്പിച്ചിരിക്കുന്നു, അതിൻ്റെ ഡിനോമിനേറ്റർ ഒരു ഘട്ടമാണ്, ഉദാഹരണത്തിന് */3 - ഓരോ മൂന്നാമത്തെ മൂല്യവും 0, 3, 6, 9 മുതലായവ. ന്യൂമറേറ്റർ മൂല്യങ്ങളുടെ ഒരു ശ്രേണിയോ നക്ഷത്രചിഹ്നമോ ആയിരിക്കണം.

ഇനിപ്പറയുന്ന ഉദാഹരണ എൻട്രി പരിഗണിക്കുക:

0 8-19/2 * * 1 /home/ivanov/test

തിങ്കളാഴ്ചകളിൽ 8 മുതൽ 19 വരെ (8, 10,12,14,16) ഓരോ രണ്ടാമത്തെ മണിക്കൂറിലും ഇവാനോവിൻ്റെ ഹോം ഡയറക്ടറിയിൽ ടെസ്റ്റ് സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുക എന്നാണ്.

ഒരു സാധാരണ തെറ്റിനെതിരെ നിങ്ങൾക്ക് ഉടനടി മുന്നറിയിപ്പ് നൽകാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു: ആനുകാലിക നിർവ്വഹണം സൂചിപ്പിക്കുമ്പോൾ, എല്ലാ തീയതികളും വ്യക്തമായി സൂചിപ്പിക്കണം, നക്ഷത്രചിഹ്നം മുഴുവൻ മൂല്യങ്ങളെയും സൂചിപ്പിക്കുന്നു, അവയുടെ അഭാവമല്ല. ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് ഓരോ മണിക്കൂറിലും 10 മുതൽ 15 വരെ ഒരു നിശ്ചിത സ്ക്രിപ്റ്റ് എക്സിക്യൂട്ട് ചെയ്യണമെങ്കിൽ, അത് തെറ്റായിരിക്കും:

* 10-15 * * * /home/ivanov/test

ഈ വരി സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കും ഓരോ മിനിറ്റിലും 10 മുതൽ 15 മണിക്കൂർ വരെ പരിധിയിൽ. അത് ശരിയായിരിക്കും:

0 10-15 * * * /home/ivanov/test

നിർദ്ദിഷ്‌ട ശ്രേണിയുടെ ഓരോ മണിക്കൂറിൻ്റെയും തുടക്കത്തിൽ സ്‌ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കാൻ ഈ എൻട്രി അനുവദിക്കും.

തീയതിക്ക് പുറമേ, നിങ്ങൾക്ക് നിരവധി പ്രത്യേക സ്ട്രിംഗുകൾ ഉപയോഗിക്കാം:

  • @റീബൂട്ട്- റീബൂട്ടിൽ കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുക
  • @വർഷത്തിലൊരിക്കൽഅഥവാ @വാർഷികം- എൻട്രിക്ക് സമാനമായി ജനുവരി 1-ന് നടപ്പിലാക്കുക: " 0 0 1 1 * "
  • @പ്രതിമാസ- സമാനമായി എല്ലാ മാസവും 1-ന് നടത്തുക 0 0 1 * * "
  • @പ്രതിവാരം- എല്ലാ ഞായറാഴ്ചയും നടത്തുക, "" 0 0 * * 0 "
  • @ദിവസേനഅഥവാ @അർദ്ധരാത്രി- എല്ലാ ദിവസവും അർദ്ധരാത്രി" 0 0 * * * "
  • @മണിക്കൂറിൽ- മണിക്കൂറിൽ ഒരിക്കൽ," 0 * * * * "

അതിനാൽ എല്ലാ അർദ്ധരാത്രിയിലും ഞങ്ങളുടെ സ്‌ക്രിപ്‌റ്റിൻ്റെ ദൈനംദിന നിർവ്വഹണത്തിനായി നിങ്ങൾക്ക് എഴുതാം:

@അർദ്ധരാത്രി /വീട്/ഇവനോവ്/ടെസ്റ്റ്

ഷെഡ്യൂൾ സൃഷ്ടിക്കുന്നത് പൂർത്തിയാക്കിയ ശേഷം, ഫയൽ സംരക്ഷിച്ച് എഡിറ്ററിൽ നിന്ന് പുറത്തുകടക്കുക. ഇഷ്‌ടാനുസൃത ഷെഡ്യൂൾ സംരക്ഷിക്കപ്പെടും /var/spool/cron/crontabsനിലവിലെ ഉപയോക്താവിൻ്റെ പേരിൽ.

സിസ്റ്റം, അഡ്മിനിസ്ട്രേറ്റീവ് ജോലികൾക്കായി ഒരു ഫയൽ നൽകിയിരിക്കുന്നു /etc/crontabഇതിലെ എൻട്രികളുടെ വാക്യഘടന ഒരു അധിക മൂല്യത്തിൻ്റെ സാന്നിധ്യം കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു - ആരുടെ പേരിൽ ടാസ്‌ക്ക് സമാരംഭിക്കും:

മിനിറ്റ് മണിക്കൂർ ദിവസം മാസം day_of_week ഉപയോക്തൃ കമാൻഡ്

അത്തരമൊരു എൻട്രിയുടെ ഉദാഹരണം:

0 19 * * 1-5 റൂട്ട് /etc/backup

അതനുസരിച്ച് തിങ്കൾ മുതൽ വെള്ളി വരെ 19:00 ന് സ്ക്രിപ്റ്റ് സമാരംഭിക്കും /etc/backupഉപയോക്താവിന് വേണ്ടി റൂട്ട്.

ഈ ഫയലിൽ സിസ്റ്റം ഷെഡ്യൂളുകളും അടങ്ങിയിരിക്കുന്നു, അതിനാൽ ഇത് എഡിറ്റുചെയ്യുന്നത് ജാഗ്രതയോടെ ചെയ്യണം. എല്ലാ സംവിധാനങ്ങളും ഭരണപരമായ ജോലികളും അവിടെ സ്ഥാപിക്കണം.

നമ്മൾ കാണുന്നതുപോലെ ക്രോൺഇത് ഉപയോഗിക്കാൻ വളരെ എളുപ്പമാണ്, എന്നാൽ അതേ സമയം ഉബുണ്ടു സെർവറിൽ ഷെഡ്യൂളുകൾ സജ്ജീകരിക്കുന്നതിനുള്ള സമൃദ്ധമായ അവസരങ്ങൾ നൽകുന്നു. അഡ്‌മിനിസ്‌ട്രേറ്റർമാരെ ഈ ഉപകരണം മാസ്റ്റർ ചെയ്യാൻ ഈ ലേഖനം സഹായിക്കുമെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.

സിസ്റ്റം അഡ്‌മിനിസ്‌ട്രേറ്റർമാർക്കും സാധാരണ ഉപയോക്താക്കൾക്കും സ്‌ക്രിപ്‌റ്റുകൾ ഉപയോഗിച്ച് ലിനക്‌സ് ഉപയോഗിച്ച് വിവിധ മെയിൻ്റനൻസ്, വർക്ക് ടാസ്‌ക്കുകൾ ഓട്ടോമേറ്റ് ചെയ്യേണ്ടതുണ്ട്. ഇത് വളരെ സൗകര്യപ്രദമാണ്, നിങ്ങൾ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുക, നിങ്ങളുടെ ഇടപെടൽ കൂടാതെ അത് ആവശ്യമായതെല്ലാം ചെയ്യുന്നു. ഈ യാത്രയുടെ അടുത്ത ഘട്ടം ശരിയായ സമയത്ത് സ്വയമേവ റൺ ചെയ്യുന്നതിനായി ശരിയായ സ്ക്രിപ്റ്റ് കോൺഫിഗർ ചെയ്യുക എന്നതാണ്.

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

വാസ്തവത്തിൽ, ക്രോൺ ഒരു സേവനമാണ്, മറ്റ് മിക്ക ലിനക്സ് സേവനങ്ങളെയും പോലെ, ഇത് സിസ്റ്റം സ്റ്റാർട്ടപ്പിൽ ആരംഭിച്ച് പശ്ചാത്തലത്തിൽ പ്രവർത്തിക്കുന്നു. ശരിയായ സമയത്ത് ശരിയായ പ്രക്രിയകൾ നടപ്പിലാക്കുക എന്നതാണ് ഇതിൻ്റെ പ്രധാന ദൌത്യം. എന്തുചെയ്യണം, എപ്പോൾ ചെയ്യണം എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ എടുക്കുന്ന നിരവധി കോൺഫിഗറേഷൻ ഫയലുകൾ ഉണ്ട്. സേവനം /etc/crontab ഫയൽ തുറക്കുന്നു, അതിൽ ആവശ്യമായ എല്ലാ ഡാറ്റയും അടങ്ങിയിരിക്കുന്നു. മിക്കപ്പോഴും, ആധുനിക വിതരണങ്ങളിൽ റൺ-പാർട്ട്സ് യൂട്ടിലിറ്റി സമാരംഭിക്കാൻ നിർദ്ദേശിക്കപ്പെടുന്നു, അത് ഇനിപ്പറയുന്ന ഫോൾഡറുകളിൽ നിന്ന് ആവശ്യമായ സ്ക്രിപ്റ്റുകൾ സമാരംഭിക്കുന്നു:

  • /etc/cron.minutely- ഓരോ മിനിറ്റിലും;
  • /etc/cron.hourly- ഓരോ മണിക്കൂറിലും;
  • /etc/cron.daily- എല്ലാ ദിവസവും;
  • /etc/cron.weekly- എല്ലാ ആഴ്ചയും;
  • /etc/cron.monthly- എല്ലാ മാസവും.

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

കമ്പ്യൂട്ടർ എല്ലായ്പ്പോഴും പ്രവർത്തിക്കുന്നില്ലെങ്കിലും കാലാകാലങ്ങളിൽ ഓഫാക്കിയാലും അവ നടപ്പിലാക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു. ജോലി അവസാനമായി നിർവ്വഹിച്ച തീയതി /var/spool/anacron ഫയലിൽ രേഖപ്പെടുത്തിയിട്ടുണ്ട്, തുടർന്ന്, അടുത്ത തവണ അത് ആരംഭിക്കുമ്പോൾ, ആവശ്യമായ പ്രോസസ്സ് ശരിയായ സമയത്ത് പ്രവർത്തിക്കുന്നുണ്ടോ എന്ന് anacron പരിശോധിക്കുന്നു, ഇല്ലെങ്കിൽ, അത് ആരംഭിക്കുന്നു. അത്. ക്രോൺ സേവനം തന്നെ പകൽ സമയത്തോ കൃത്യമായി ഷെഡ്യൂൾ ചെയ്ത സമയവും തീയതിയും ഉപയോഗിച്ച് ടാസ്‌ക്കുകൾ ചെയ്യാൻ കൂടുതൽ രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നു.

ക്രോൺ സജ്ജീകരിക്കുന്നു

ടാസ്ക് എക്സിക്യൂട്ട് ചെയ്യേണ്ട സമയവും തീയതിയും ഇടവേളയും ക്രമീകരിക്കുന്നതിന്, ഒരു പ്രത്യേക ക്രോൺ ഫയൽ സിൻ്റാക്സും ഒരു പ്രത്യേക കമാൻഡും ഉപയോഗിക്കുന്നു. തീർച്ചയായും, നിങ്ങൾക്ക് എല്ലായ്പ്പോഴും /etc/crontab ഫയൽ എഡിറ്റ് ചെയ്യാൻ കഴിയും, എന്നാൽ ഇത് ശുപാർശ ചെയ്യുന്നില്ല. പകരം, ഒരു crontab കമാൻഡ് ഉണ്ട്:

-e ഓപ്‌ഷൻ ഉപയോഗിച്ച് ഇത് നിർവഹിക്കുന്നത് എല്ലായ്പ്പോഴും ഉചിതമാണ്, തുടർന്ന് നിങ്ങളുടെ ഡിഫോൾട്ട് ടെക്സ്റ്റ് എഡിറ്റർ നിയമങ്ങൾ എഡിറ്റ് ചെയ്യാൻ ഉപയോഗിക്കും. കമാൻഡ് നിങ്ങൾക്ക് ഒരു താൽക്കാലിക ഫയൽ തുറക്കുന്നു, അതിൽ നിലവിലുള്ള എല്ലാ ക്രോൺ നിയമങ്ങളും ഇതിനകം അടങ്ങിയിരിക്കുന്നു, നിങ്ങൾക്ക് പുതിയവ ചേർക്കാൻ കഴിയും. ക്രോൺ കമാൻഡ് പൂർത്തിയാക്കിയ ശേഷം, ഫയൽ പ്രോസസ്സ് ചെയ്യുകയും എല്ലാ നിയമങ്ങളും /var/spool/cron/crontabs/username-ലേക്ക് ചേർക്കുകയും ചെയ്യും, കൂടാതെ ചേർത്ത പ്രക്രിയകൾ നിങ്ങൾ ചേർത്ത ഉപയോക്താവിൽ നിന്ന് കൃത്യമായി സമാരംഭിക്കും.

അതിനാൽ, നിങ്ങൾ ഇവിടെ ശ്രദ്ധിക്കേണ്ടതുണ്ട്, കൂടാതെ നിങ്ങൾക്ക് സ്ക്രിപ്റ്റുകൾ റൂട്ടായി എക്സിക്യൂട്ട് ചെയ്യണമെങ്കിൽ, ക്രോണ്ടാബ് റൂട്ട് ആയി എക്സിക്യൂട്ട് ചെയ്യണം, അല്ലാതെ ഒരു ഉപയോക്താവായിട്ടല്ല. ഇത് പലപ്പോഴും പ്രശ്നങ്ങൾ ഉണ്ടാക്കുന്നു.

crontab വാക്യഘടന

ഞാൻ ഇതിനകം പറഞ്ഞതുപോലെ, സമയം ഒരു പ്രത്യേക വാക്യഘടനയിൽ സജ്ജീകരിച്ചിരിക്കുന്നു, ഒരൊറ്റ ക്രോൺ ടാസ്ക് സജ്ജീകരിക്കുന്നതിനുള്ള വാക്യഘടന നോക്കാം:

മിനിറ്റ് മണിക്കൂർ ദിവസം മാസം ദിവസം_ആഴ്ച /path/to/executable/file

കമാൻഡിലേക്കുള്ള മുഴുവൻ പാതയും നിങ്ങൾ എഴുതണം എന്ന് പറയണം, കാരണം ക്രോൺ ആയി പ്രവർത്തിക്കുന്ന കമാൻഡുകൾക്ക്, PATH എൻവയോൺമെൻ്റ് വേരിയബിൾ വ്യത്യസ്തമായിരിക്കും, കൂടാതെ സേവനത്തിന് നിങ്ങളുടെ കമാൻഡ് കണ്ടെത്താൻ കഴിയില്ല. ക്രോണുമായുള്ള പ്രശ്നങ്ങളുടെ രണ്ടാമത്തെ സാധാരണ കാരണമാണിത്. തീയതിയും സമയവും അക്കങ്ങളോ "*" ചിഹ്നമോ ഉപയോഗിച്ച് സൂചിപ്പിച്ചിരിക്കുന്നു. ഈ ചിഹ്നം അർത്ഥമാക്കുന്നത് അത് ഓരോ തവണയും എക്സിക്യൂട്ട് ചെയ്യേണ്ടതുണ്ട്, ആദ്യ ഫീൽഡിലാണെങ്കിൽ - പിന്നെ ഓരോ മിനിറ്റും മറ്റും. ശരി, ഇപ്പോൾ നമുക്ക് ഉദാഹരണങ്ങളിലേക്ക് പോകാം.

ക്രോൺ ക്രമീകരണങ്ങളുടെ ഉദാഹരണങ്ങൾ

ആദ്യം, നിങ്ങൾക്ക് സൂപ്പർ യൂസറിനായുള്ള ക്രോൺ ടാസ്‌ക്കുകൾ കാണാൻ കഴിയും, ഇതിനായി നിങ്ങൾക്ക് -l ഓപ്ഷൻ ഉപയോഗിക്കാം:

-r കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് നിലവിലുള്ള എല്ലാ ജോലികളും ഇല്ലാതാക്കാൻ കഴിയും:

/usr/local/bin/serve as superuser എന്നതിൽ നമ്മുടെ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കേണ്ടതുണ്ടെന്ന് നമുക്ക് അനുമാനിക്കാം. ചില തരത്തിലുള്ള മെയിൻ്റനൻസ് സ്ക്രിപ്റ്റ്. ഓരോ മിനിറ്റിലും ഇത് പ്രവർത്തിപ്പിക്കുക എന്നതാണ് ഏറ്റവും ലളിതമായ ഉദാഹരണം:

* * * * * /usr/local/bin/serve

0 * * * * /usr/local/bin/serve

പൂജ്യം മണിക്കൂറിൻ്റെ പൂജ്യം മിനിറ്റിൽ ഞങ്ങൾ സമാരംഭിക്കുന്നു, എല്ലാ ദിവസവും, ഇത് രാത്രി 12 മണിക്കാണ്:

0 0 * * * /usr/local/bin/serve

0 0 1 * * /usr/local/bin/serve

നിങ്ങൾക്ക് ഏത് ദിവസവും ഇത് ചെയ്യാൻ കഴിയും, ഉദാഹരണത്തിന്, 15-ാം തീയതി:

0 0 15 * * /usr/local/bin/serve

വർഷത്തിലെ ആദ്യ മാസത്തിലെ ആഴ്ചയിലെ ആദ്യ ദിവസം, 0 മണിക്കൂർ 0 മിനിറ്റ്:

0 0 * 1 0 /usr/local/bin/serve

അല്ലെങ്കിൽ ഓരോ മാസത്തെയും ആഴ്ചയിലെ പൂജ്യം ദിവസം:

0 0 * * 0 /usr/local/bin/serve

നിങ്ങൾക്ക് ആഴ്ചയിലെ ഏത് മിനിറ്റും മണിക്കൂറും ദിവസവും തിരഞ്ഞെടുക്കാം, ഉദാഹരണത്തിന് ചൊവ്വാഴ്ച 15.30:

30 15 * * 2 /usr/local/bin/serve

തിങ്കളാഴ്ച ആദ്യ ദിവസമായി കണക്കാക്കപ്പെടുന്നു, ഞായറാഴ്ച ഏഴാമത്തെ അല്ലെങ്കിൽ പൂജ്യം ദിവസമാണ്. ആഴ്‌ചയിലെ ദിവസത്തിനായി നിങ്ങൾക്ക് ഒരു ചുരുക്കപ്പേരും എഴുതാം, ഉദാഹരണത്തിന് സൂര്യൻ - ഞായർ:

30 15 * * sun /usr/local/bin/serve

ഒരു നിർദ്ദിഷ്ട ഇടവേള സൂചിപ്പിക്കാൻ, നിങ്ങൾ "-" ചിഹ്നം ഉപയോഗിക്കേണ്ടതുണ്ട്, ഉദാഹരണത്തിന്, ഓരോ മണിക്കൂറിലും, രാവിലെ ഏഴ് മുതൽ വൈകുന്നേരം ഏഴ് വരെ:

0 7-19 * * * /usr/local/bin/serve

നിങ്ങൾക്ക് ഒരു കമാൻഡ് ഒന്നിലധികം തവണ പ്രവർത്തിപ്പിക്കണമെങ്കിൽ, നിങ്ങൾക്ക് "," സെപ്പറേറ്റർ ഉപയോഗിക്കാം. ഉദാഹരണത്തിന്, എല്ലാ ദിവസവും അഞ്ച് കഴിഞ്ഞ് 5, 35 മിനിറ്റ് (16:05, 16:35) സ്‌ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കാം:

5.35 16 * * * /usr/local/bin/serve

നിങ്ങൾക്ക് സമയം പ്രത്യേകം വ്യക്തമാക്കണമെന്നില്ല, എന്നാൽ ഓരോ 10 മിനിറ്റിലും ഒരിക്കൽ പോലെ, സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കേണ്ട ഇടവേള വ്യക്തമാക്കുക. ഇത് ചെയ്യുന്നതിന്, സ്ലാഷ് ഡിലിമിറ്റർ ഉപയോഗിക്കുക - "/":

*/10 * * * * /usr/local/bin/serve

കൂടാതെ, സാധാരണയായി ഉപയോഗിക്കുന്ന ചില സെറ്റുകൾക്കായി വേരിയബിളുകൾ കണ്ടുപിടിച്ചു, അവ ഇതാ:

  • @റീബൂട്ട്- ലോഡ് ചെയ്യുമ്പോൾ, ഒരിക്കൽ മാത്രം;
  • @വാർഷികം, @വാർഷികം- വർഷത്തിൽ ഒരിക്കൽ;
  • @പ്രതിമാസ- മാസത്തിൽ ഒരിക്കൽ;
  • @പ്രതിവാരം- ആഴ്ചയിൽ ഒരിക്കൽ;
  • @പ്രതിദിനം, @അർദ്ധരാത്രി- എല്ലാ ദിവസവും;
  • @മണിക്കൂറിൽ- ഓരോ മണിക്കൂറിലും.

ഉദാഹരണത്തിന്, ഒരു മണിക്കൂറിൽ ഒരിക്കൽ ഒരു സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള ഒരു കമാൻഡ് ലളിതമായി തോന്നുന്നത് ഇങ്ങനെയാണ്:

@hourly /usr/local/bin/serve

നിങ്ങൾ ഒരു ഫോൾഡറിലേക്ക് ഒരു സ്ക്രിപ്റ്റ് ചേർക്കാൻ പോകുകയാണെങ്കിൽ, ഞാൻ ഇതിനകം പറഞ്ഞതുപോലെ, നിങ്ങൾക്ക് അതിൻ്റെ പേര് ഡോട്ടുകളില്ലാതെ വേണം, അതിന് എക്സിക്യൂഷൻ അവകാശങ്ങളുണ്ട്:

sudo vi /etc/corn.daily/basckup

തിരക്കഥ ഇതുപോലെ ആയിരിക്കണം. ക്രോൺ എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് ഇപ്പോൾ നിങ്ങൾക്കറിയാം, എല്ലാം എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് പരിശോധിക്കാൻ മാത്രമാണ് അവശേഷിക്കുന്നത്.

ഡീബഗ്ഗിംഗ് ജോലി

നിങ്ങൾ നിയമങ്ങൾ സജ്ജീകരിച്ച ശേഷം, അവ പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കാനും നിങ്ങൾ ആഗ്രഹിക്കുന്നു. ഇത് ചെയ്യുന്നതിന്, സ്ക്രിപ്റ്റ് ഇതിനകം തന്നെ എക്സിക്യൂട്ട് ചെയ്യേണ്ട സമയത്തിനായി ഞങ്ങൾ കാത്തിരിക്കുകയും ക്രോൺ ലോഗ് നോക്കുകയും ചെയ്യുന്നു. ചിലപ്പോൾ ഇത് /var/log/cron-ൽ ആയിരിക്കും, ചിലപ്പോൾ ഇത് syslog-ൽ എഴുതപ്പെടും. ഉദാഹരണത്തിന്, എൻ്റെ ക്രോണ്ടാബിൽ ഈ വരി ഉണ്ട്:

ഇത് എല്ലാ ദിവസവും 19.40 ന് എക്സിക്യൂട്ട് ചെയ്യണം, ഇപ്പോൾ ലോഗ് നോക്കുക:

grep CRON /var/log/syslog

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

പ്രത്യേക ഫോൾഡറുകളിലൊന്നിൽ സ്ഥിതിചെയ്യുന്ന ഒരു സ്ക്രിപ്റ്റ് നിങ്ങൾക്ക് പരിശോധിക്കണമെങ്കിൽ, ഇത് കൂടുതൽ എളുപ്പമാണ്, റൺ-പാത്ത് പ്രവർത്തിപ്പിക്കുക, ആവശ്യമുള്ള ഫോൾഡർ അല്ലെങ്കിൽ സ്ക്രിപ്റ്റ് തന്നെ ഒരു പാരാമീറ്ററായി കടന്നുപോകുക:

സുഡോ റൺ-പാത്ത് /etc/cron.daily/

നിഗമനങ്ങൾ

ഈ ലേഖനത്തിൽ, ഓട്ടോമാറ്റിക് ടാസ്ക്കുകളുടെ സൗകര്യപ്രദമായ ഷെഡ്യൂളിംഗിനായി ക്രോൺ എങ്ങനെയാണ് ക്രമീകരിച്ചിരിക്കുന്നത് എന്ന് ഞങ്ങൾ നോക്കി. ഈ വിവരം നിങ്ങൾക്ക് ഉപയോഗപ്രദമായിരുന്നുവെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു.

ലിനക്സിന് എങ്ങനെ ഒരു ഹാൻഡി ക്രോൺ ടാസ്‌ക് ഷെഡ്യൂളർ ഉണ്ടെന്ന് ഞാൻ ഒരുപാട് കേട്ടിട്ടുണ്ട്. എന്നിരുന്നാലും, എനിക്ക് അത് ഉപയോഗിക്കേണ്ട ആവശ്യമില്ല, അതിൻ്റെ ക്രമീകരണങ്ങൾ മനസിലാക്കാൻ ഞാൻ ആഗ്രഹിച്ചില്ല ... കൺസോൾ, ധാരാളം ഇംഗ്ലീഷ് അക്ഷരങ്ങൾ ... അത് ഭയാനകമായിരുന്നു. പക്ഷേ, ഭാഗ്യവശാൽ, എൻ്റെ ഭയം വെറുതെയായി - എല്ലാം അടിസ്ഥാനകാര്യങ്ങൾ വരെ ലളിതമാണ്. ഒരു ഷെഡ്യൂളിൽ നിങ്ങളുടെ സ്ക്രിപ്റ്റുകളുടെ നിർവ്വഹണം എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് ലേഖനം നോക്കും, ഒരു ഉദാഹരണമായി ഞങ്ങൾ "കുക്കൂ" ഇൻസ്റ്റാൾ ചെയ്യും.

ആദ്യം, ഇത് സാധാരണയായി എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്നതിനെക്കുറിച്ച് കുറച്ച്.

സിസ്റ്റം ആരംഭിക്കുമ്പോൾ, ക്രോൺ ഡെമൺ ആരംഭിക്കുന്നു. സുഡോ സർവീസ് ക്രോൺ (സ്റ്റോപ്പ്/സ്റ്റാർട്ട്/സ്റ്റാറ്റസ്) എന്ന കമാൻഡ് ഉപയോഗിച്ച് ഇത് നിയന്ത്രിക്കാനാകും (സ്റ്റോപ്പ്/സ്റ്റാർട്ട്/സ്റ്റാറ്റസ് പരിശോധിക്കുക). എന്നാൽ ഇത് വളരെ അപൂർവമായി മാത്രമേ ആവശ്യമുള്ളൂ.

ക്രോൺ ഡെമൺ തന്നെ മിക്ക സമയത്തും ഉറങ്ങുന്നു, ഈ സമയത്ത് ജോലികൾക്കായി പരിശോധിക്കാൻ മിനിറ്റിൽ ഒരിക്കൽ കണ്ണ് ചെറുതായി തുറക്കുന്നു. ജോലികളൊന്നുമില്ലെങ്കിൽ, അവൻ വീണ്ടും ഹൈബർനേഷനിലേക്ക് പോകുന്നു.

ഉപയോക്തൃ നാമങ്ങൾക്ക് തുല്യമായ പേരുകളുള്ള ഫയലുകളിലാണ് ജോലികൾ സ്ഥിതിചെയ്യുന്നത്, കൂടാതെ ഫയലുകൾ തന്നെ /var/spool/cron/crontabs ഫോൾഡറിലാണ് സ്ഥിതി ചെയ്യുന്നത്. ഫോൾഡർ ബാഹ്യ ഇടപെടലുകളിൽ നിന്ന് പരിരക്ഷിച്ചിരിക്കുന്നു, മാത്രമല്ല സൂപ്പർ യൂസറിന് മാത്രമേ ആക്‌സസ് ചെയ്യാനാകൂ. പക്ഷേ, റൂട്ട് (സൂപ്പർ യൂസർ) പാസ്‌വേഡ് അറിയാതെ ഓരോ ഉപയോക്താവിനും അവരുടെ ജോലികൾക്കായി ഒരു ഷെഡ്യൂൾ സജ്ജീകരിക്കാൻ കഴിയും.

ലേക്ക് ക്രോൺ സ്ഥാപിക്കുകഒരു സാധാരണ ഉപയോക്താവിന്, ടൈപ്പ് ചെയ്യുക:

മറ്റൊരു ഉപയോക്താവിനായി നിങ്ങൾക്ക് ഒരു ടാസ്‌ക് സൃഷ്‌ടിക്കണമെങ്കിൽ, കമാൻഡ് ഉപയോഗിച്ച് അത് സമാരംഭിക്കുക:

sudo crontab -u യൂസർ -ഇ

ഉപയോക്താവിന് പകരം, ആവശ്യമുള്ള ഉപയോക്താവിനെ എഴുതുക, ഉദാഹരണത്തിന് റൂട്ട്.
നിങ്ങൾ ആദ്യം ലോഞ്ച് ചെയ്യുമ്പോൾ എഡിറ്ററെ കുറിച്ച് ഒരു ചോദ്യം ഉണ്ടാകും... എനിക്ക് നാനോ ഇഷ്ടമാണ്. ഇത് ലളിതവും GUI ഇല്ലാതെ പ്രവർത്തിക്കുന്നതുമാണ്.


ജോലികൾക്കുള്ള വാക്യഘടന വളരെ ലളിതമാണ്. ഒരു കുക്കൂ വിക്ഷേപിക്കുന്നതിൻ്റെ സ്ക്രീൻഷോട്ടിൽ നിന്നുള്ള ഒരു ഉദാഹരണം നോക്കാം:

0 */1 * * * /home/zegi/bin/kuku

ടാസ്ക്കിൽ 2 പ്രധാന ഫീൽഡുകൾ ഉണ്ട്: 0 */1 * * * - കമാൻഡ് ട്രിഗർ ചെയ്യുന്ന സമയം സൂചിപ്പിക്കുന്നു. കൂടാതെ /home/zegi/bin/kuku എന്നത് കമാൻഡ്(കൾ) വിവരിക്കുന്ന സ്ക്രിപ്റ്റിലേക്കുള്ള പാതയാണ്.

സ്ക്രിപ്റ്റിലേക്കുള്ള വിലാസത്തിൽ പ്രശ്നങ്ങളൊന്നും ഉണ്ടാകരുത് (zegi എന്നത് ഉപയോക്തൃനാമമാണ്... നിങ്ങളുടേത് ഇടാൻ മറക്കരുത്). എന്നാൽ സ്ക്രിപ്റ്റ് എക്സിക്യൂഷനുവേണ്ടി ക്രോൺ ടൈം സെറ്റ് ചെയ്യുന്നതെങ്ങനെയെന്ന് വിശദീകരിക്കേണ്ടതുണ്ട്.

മൊത്തത്തിൽ നമുക്ക് 5 ഇൻപുട്ട് സെല്ലുകൾ ഉണ്ട്, അവ ഒരു സ്പേസ് കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു.
1 - മിനിറ്റ് (0 മുതൽ 59 വരെയുള്ള സംഖ്യകൾ)
2 - മണിക്കൂർ (0 മുതൽ 23 വരെ)
3 - മാസത്തിലെ ദിവസം (1 മുതൽ 31 വരെ)
4 - വർഷത്തിലെ മാസം (1 മുതൽ 12 വരെ... ഉദാഹരണത്തിന് ഫെബ്രുവരി 2)
5 - ആഴ്‌ചയിലെ ദിവസം (1 മുതൽ 7 വരെ. പടിഞ്ഞാറൻ ആഴ്‌ച ഉപയോഗിക്കുന്നു, ആരംഭം ഞായറാഴ്‌ചയാണ്. അതായത് ഞായർ-1, തിങ്കൾ-2, ചൊവ്വ-3, ബുധൻ-4, വ്യാഴം-5, വെള്ളി-6, ശനി - 7).

ഓരോ സെല്ലും പൂരിപ്പിക്കണം. എല്ലാ മാസവും കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യേണ്ടതുണ്ടെങ്കിൽ, സജ്ജമാക്കുക * നാലാമത്തെ ഫീൽഡിൽ. മറ്റ് ഫീൽഡുകൾക്കും ഇത് ബാധകമാണ്.

ഓരോ മണിക്കൂറിലും സ്ക്രിപ്റ്റ് പ്രവർത്തിക്കുമ്പോൾ നമുക്ക് കുക്കൂ ഉദാഹരണത്തിലേക്ക് മടങ്ങാം. ആവൃത്തി സജ്ജീകരിക്കാൻ അത് ഉപയോഗിക്കുന്നു / . ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് ഓരോ 5 മിനിറ്റിലും, തിങ്കളാഴ്ചകളിൽ ടാസ്‌ക് എക്‌സിക്യൂട്ട് ചെയ്യേണ്ടതുണ്ടെങ്കിൽ, സജ്ജമാക്കുക:

ഓരോ മണിക്കൂറിലും ടാസ്‌ക് എക്‌സിക്യൂട്ട് ചെയ്യേണ്ടതുണ്ടെങ്കിൽ, നിങ്ങൾ ഒരു നിർദ്ദിഷ്ട മിനിറ്റ് സജ്ജീകരിക്കേണ്ടതുണ്ട്. നിങ്ങൾ ഒരു നക്ഷത്രചിഹ്നം (* */1 * * *) വിടുകയാണെങ്കിൽ, കിരീടം ഓരോ മിനിറ്റിലും പ്രവർത്തിക്കും - കാരണം വ്യവസ്ഥകൾ പാലിക്കുന്നു: ഇത് എല്ലാ 5 സെല്ലുകളും പരിശോധിച്ചു, അവയുടെ മൂല്യം നിലവിലെ സമയവുമായി പൊരുത്തപ്പെടുന്നു (മിനിറ്റുകൾ - ഇത് പ്രശ്നമല്ല മണിക്കൂറുകൾ - ഓരോ മണിക്കൂറിലും, ചിലത് മാത്രമല്ല ).
സ്ലാഷിന് എപ്പോഴും ഒരു നക്ഷത്രചിഹ്നം മുമ്പിൽ ഉണ്ടായിരിക്കണം. ഉദാഹരണത്തിന്, 30/1 എന്ന് നൽകി 30 മുതൽ ആരംഭിക്കുന്ന ഓരോ മിനിറ്റിലും എക്സിക്യൂഷൻ നൽകുന്നത് പ്രവർത്തിക്കില്ല.

ടാസ്‌ക് ചാക്രികമായിട്ടല്ല, നിരവധി തവണ നിർവ്വഹിക്കേണ്ടത് ആവശ്യമാണെങ്കിൽ, മൂല്യങ്ങൾ കോമകളാൽ വേർതിരിച്ചിരിക്കുന്നു.
ഉദാഹരണത്തിന്, പ്രവൃത്തിദിവസങ്ങളിൽ ഉച്ചയ്ക്ക് 12 മണിക്കും വൈകുന്നേരം 6 മണിക്കും നിങ്ങൾ ഒരു ടാസ്ക് പൂർത്തിയാക്കേണ്ടതുണ്ട്. അപ്പോൾ അത് ഇതുപോലെ കാണപ്പെടും:

* 12,18 * * 2,3,4,5,6

നിങ്ങൾ എഡിറ്റിംഗ് ജോലികൾ പൂർത്തിയാക്കുമ്പോൾ, മാറ്റങ്ങൾ സംരക്ഷിക്കാൻ മറക്കരുത് (Ctrl+O > enter), തുടർന്ന് നിങ്ങൾക്ക് പുറത്തുകടക്കാം (Ctrl+x).

ഒരു പുതിയ ടാസ്‌ക് പ്രത്യക്ഷപ്പെട്ടിട്ടുണ്ടെന്നും അത് എക്‌സിക്യൂട്ട് ചെയ്യാൻ തയ്യാറാണെന്നും ക്രോൺ അറിയിക്കണം: “ക്രോണ്ടാബ്: പുതിയ ക്രോണ്ടാബ് ഇൻസ്റ്റാൾ ചെയ്യുന്നു”.

കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് സൃഷ്ടിച്ച ടാസ്‌ക്കുകൾ കാണാൻ കഴിയും (ഒരുപക്ഷേ നിങ്ങൾ സ്വയം ഒന്നും ചെയ്തില്ലായിരിക്കാം, പക്ഷേ നെറ്റ്‌വർക്ക് അഡ്മിനിസ്ട്രേറ്റർ നിങ്ങൾക്കായി എന്തെങ്കിലും ക്രമീകരിച്ചിട്ടുണ്ട്):

അവസാനം ഞാൻ തന്നെ കുക്കൂ സ്ക്രിപ്റ്റ്, ഏത് കാക്കകൾ ഓരോ മണിക്കൂറിലും:

#!/bin/bash
h=`തീയതി +%l`
അതേസമയം [$h -gt 0]
ചെയ്യുക
കളിക്കുക ~/kukushka.wav
h=$[$h-1]
ചെയ്തു

കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് കുക്കൂ ശബ്ദം ഡൗൺലോഡ് ചെയ്യാം:

wget http://dl.dropbox.com/u/24844052/tuksik/kukushka.wav

സോക്സ് പാക്കേജിൽ പ്ലേ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഉബുണ്ടുവിൽ നിങ്ങൾക്ക് കമാൻഡ് ഉപയോഗിച്ച് ഇത് ഇൻസ്റ്റാൾ ചെയ്യാം.

പ്രക്രിയകളുടെ നിർവ്വഹണത്തിന് നിയന്ത്രണം നൽകുന്ന ഒരു ഉപയോഗപ്രദമായ സംവിധാനം ലിനക്സ്ഒരു ടാസ്ക് ഷെഡ്യൂളറാണ് അല്ലെങ്കിൽ ക്രോൺ, ഫയൽ ക്രോണ്ടാബ് etc ഡയറക്ടറിയിൽ, ഈ ഫയൽ ഉപയോഗിച്ച്, ഒരു റണ്ണിംഗ് സിസ്റ്റത്തിനായി നമുക്ക് എഴുതാൻ കഴിയുന്ന സ്ക്രിപ്റ്റുകളും ടാസ്ക്കുകളും ചേർക്കുന്നു, ഉദാഹരണത്തിന്, പ്രവർത്തനം നിയന്ത്രിക്കുന്നതിന് ലിനക്സ്ഇ-മെയിൽ വഴിയുള്ള സംവിധാനങ്ങൾ

ക്രോൺ- ഡെമൺ സേവനം ഉപയോഗിക്കുന്നു linux/unixഒരു ടാസ്ക് ഷെഡ്യൂളറായി സിസ്റ്റങ്ങൾ. നിർവ്വഹണത്തിനായി സ്ക്രിപ്റ്റുകൾ ഇടയ്ക്കിടെ സമാരംഭിക്കാൻ ഡെമൺ നിങ്ങളെ അനുവദിക്കുന്നു.

സൃഷ്ടിച്ച ഫയലുകൾ ഡയറക്‌ടറിയിൽ സ്ഥാപിച്ചിരിക്കുന്നു:
/usr/spool/cron/crontabs അല്ലെങ്കിൽ /var/spool/cron/tabs
crontab-e പ്രവർത്തിപ്പിച്ച് മാത്രമേ നിങ്ങൾ അവ എഡിറ്റ് ചെയ്യാവൂ
നിർവ്വഹണ കാലയളവിനെ ആശ്രയിച്ച്, ഇനിപ്പറയുന്ന ഡയറക്‌ടറികളിൽ ഫയലുകൾ സ്ഥാപിക്കാവുന്നതാണ്:
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

ക്രോൺ ജോലികൾ സൃഷ്ടിക്കുന്നു
ഒരു ടാസ്ക് സൃഷ്ടിക്കുക ക്രോണ്ടാബ്ആവശ്യമുള്ള ആറ് ഫീൽഡുകൾ പൂരിപ്പിക്കുന്നത് പോലെ തോന്നുന്നു, അവയുടെ അർത്ഥം ഇപ്രകാരമാണ്:
1. മിനിറ്റ് - 0-59 മുതൽ ഒരു സംഖ്യ
2. മണിക്കൂർ - 0-23 മുതൽ അക്കങ്ങൾ
3. മാസത്തിലെ ദിവസം - 1-31 മുതൽ ഒരു സംഖ്യ
4. വർഷത്തിലെ മാസത്തിൻ്റെ എണ്ണം - 1-12 മുതൽ ഒരു സംഖ്യ
5. ആഴ്ചയിലെ ദിവസം - 0-7 മുതൽ ഒരു സംഖ്യ
0-ഞായർ, 1-തിങ്കൾ, 2-ചൊവ്വ, 3-ബുധൻ, 4-വ്യാഴം, 5-വെള്ളി, 6-ശനി
മുകളിലുള്ള ഓരോ പാരാമീറ്ററുകൾക്കും ഇനിപ്പറയുന്ന മൂല്യങ്ങൾ സജ്ജമാക്കാൻ കഴിയും:
a) കോമകളാൽ വേർതിരിച്ചിരിക്കുന്നു - 3,7,9 (യഥാക്രമം 3,7,9 മാസത്തെ ഫീൽഡിൽ)
b) ഹൈഫനേറ്റഡ് - 3-9 (മണിക്കൂർ ഫീൽഡിൽ ഇത് 3,4,5,6,7,8,9 എന്നതിലെ നിർവ്വഹണത്തെ അർത്ഥമാക്കും)
c) * - സാധ്യമായ എല്ലാ മൂല്യങ്ങളിലും എക്സിക്യൂട്ട് ചെയ്യും
d) / - അധിക ടാസ്‌ക് കാലയളവുകൾ ക്രമീകരിക്കുന്നു - */8 മിനിറ്റ് ഫീൽഡിൽ, ഓരോ എട്ടാം മിനിറ്റിലും എക്‌സിക്യൂട്ട് ചെയ്യും

ഒരു ടാസ്ക് എങ്ങനെ പ്രവർത്തിപ്പിക്കാം ക്രോൺസിസ്റ്റം ബൂട്ട് ചെയ്യുമ്പോൾ. സിസ്റ്റം ബൂട്ട് ചെയ്യുമ്പോൾ ഒരു സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കാൻ ലിനക്സ്റീബൂട്ട് കീവേഡ് ഉപയോഗിക്കുന്നു. ഉദാഹരണത്തിന്:

കൂടാതെ, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന കീവേഡുകൾ ഉപയോഗിക്കാം:
@വാർഷികം - 0 0 1 1 * (വർഷത്തിൽ ഒരിക്കൽ)
@പ്രതിദിനം - 0 0 * * * എന്നതിന് തുല്യമാണ് (ദിവസത്തിൽ ഒരിക്കൽ)
@മണിക്കൂറിൽ - 0 * * * * പോലെ തന്നെ (മണിക്കൂറിൽ ഒരിക്കൽ)

ക്രോണ്ടാബ് കൈകാര്യം ചെയ്യുന്നതിനുള്ള കമാൻഡുകൾ
- കറൻ്റ് അക്കൗണ്ടിനായുള്ള ടാസ്‌ക്കുകൾ കാണുക
crontab -l
- ആവശ്യമുള്ള അക്കൗണ്ടിനായുള്ള ടാസ്‌ക്കുകൾ കാണുക
crontab -u ഉപയോക്തൃനാമം -l
- ക്രോൺ ജോലികൾ എഡിറ്റുചെയ്യുന്നു
ക്രോണ്ടാബ് -ഇ
- നൽകിയിരിക്കുന്ന ഒരു ഉപയോക്താവിനായി ക്രോൺ ജോലികൾ എഡിറ്റുചെയ്യുന്നു
crontab -u ഉപയോക്തൃനാമം -e

ക്രോൺ ജോലികളുടെ ഉദാഹരണങ്ങൾ:
എല്ലാ ദിവസവും രാവിലെ 7 മണിക്ക് ടാസ്ക് പൂർത്തിയാക്കുക
0 7 * * * root /home/scripts/mount.sh
എല്ലാ ദിവസവും 17:30-ന് ടാസ്ക് പൂർത്തിയാക്കുക
30 17 * * * root /home/scripts/mount.sh
എല്ലാ മാസവും ആദ്യ ദിവസം 0 മണിക്കൂർ 0 മിനിറ്റിൽ ടാസ്ക് പൂർത്തിയാക്കുക
0 0 1 * * root /home/scripts/mount.sh
ഓരോ 4 മണിക്കൂറിലും ടാസ്ക് പ്രവർത്തിപ്പിക്കുക
* * /4 * * * root /home/scripts/mount.sh
ബൂട്ടിൽ ടാസ്ക് പ്രവർത്തിപ്പിക്കുക ലിനക്സ്
@reboot റൂട്ട് /home/scripts/mount.sh

അധിക ക്രോൺ സജ്ജീകരണം
ചുമതലകളെക്കുറിച്ചുള്ള ഒരു റിപ്പോർട്ട് ലഭിക്കുന്നതിന് ക്രോൺനിങ്ങൾക്ക് തുടക്കത്തിൽ ഒരു മെയിൽ വേരിയബിൾ നിർവചിക്കാം ക്രോൺസ്ക്രിപ്റ്റ്
MAIL=mail.mail.local
ഡിഫോൾട്ടായി, കത്തിൽ എല്ലാ സന്ദേശങ്ങളും സ്ക്രിപ്റ്റ് പ്രകാരമുള്ള ഔട്ട്പുട്ട് അടങ്ങിയിരിക്കും; ഇത് സംഭവിക്കുന്നത് തടയാൻ, നിങ്ങൾ സ്ക്രിപ്റ്റിൻ്റെ ക്രോൺ ജോബിലേക്ക് > /dev/null 2>&1 ചേർക്കേണ്ടതുണ്ട്
ക്രോണിൽ നിന്ന് സന്ദേശങ്ങൾ സ്വീകരിക്കുന്നത് അപ്രാപ്തമാക്കുന്നതിന് നിങ്ങൾ മെയിൽ വേരിയബിൾ സജ്ജമാക്കാതെ വിടേണ്ടതുണ്ട്
മെയിൽ=””
ഉദാഹരണത്തിന്, PATH വേരിയബിൾ ഉപയോഗിച്ച് സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് ഫയലിലേക്കുള്ള പാത നിർണ്ണയിക്കാൻ സാധിക്കും
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/scripts, crontab-ൽ, ജോബ് പാരാമീറ്ററുകൾ ലൈനിൽ എഴുതാൻ നിങ്ങളെ അനുവദിക്കും
@reboot root mount.sh
php ഇൻ്റർപ്രെറ്റർ ഉപയോഗിച്ച് ക്രോൺ വഴി സ്ക്രിപ്റ്റുകൾ പ്രവർത്തിപ്പിക്കുന്നു
* 1 * * * /usr/local/bin/php – q mount.sh > /dev/null 2>&1
/usr/local/bin/wget –O /dev/null –q http://"site.com/cron.php?action=123"