ప్రతి నిమిషానికి ఒక క్రాన్ జాబ్‌ను అమలు చేయండి

Run Cron Job Every Minute



మీరు Linux లో బ్యాక్‌గ్రౌండ్‌లో ప్రోగ్రామ్ లేదా స్క్రిప్ట్‌ను అమలు చేయాలనుకుంటే, క్రాన్ జాబ్ చాలా ముఖ్యం. క్రాన్ జాబ్స్ సహాయంతో, మీరు ఇచ్చిన విరామం తర్వాత బ్యాక్‌గ్రౌండ్‌లో ప్రోగ్రామ్ లేదా స్క్రిప్ట్‌ను అమలు చేయవచ్చు.

క్రాన్ జాబ్స్ యొక్క కొన్ని నిజ జీవిత ఉదాహరణలను చూద్దాం.







  • మీరు ఒక వెబ్‌సైట్‌ను కలిగి ఉన్నారని మరియు మీ వెబ్‌సైట్ వినియోగదారులందరికీ ప్రతిరోజూ ఇమెయిల్ పంపాలని అనుకుందాం. మీరు చేయాల్సిందల్లా, ఇమెయిల్ పంపే స్క్రిప్ట్ రాయండి మరియు ప్రతిరోజూ ఆ స్క్రిప్ట్‌ను అమలు చేయడానికి క్రాన్ జాబ్‌ను సెటప్ చేయండి.
  • మీరు ఒక ప్రకటనల ఏజెన్సీని కలిగి ఉన్నారని చెప్పండి మరియు రీఛార్జ్ చేయడానికి బ్యాలెన్స్ 5 $ కంటే తక్కువ ఉన్న ప్రకటనదారులందరికీ మీరు గుర్తు చేయాలనుకుంటున్నారు. మీరు చేయాల్సిందల్లా అన్ని ప్రకటనదారుల సమతుల్యతను తనిఖీ చేసే స్క్రిప్ట్ రాయడం మరియు అది 5 $ కంటే తక్కువ ఉన్నప్పుడు, అది ప్రకటనదారు మొబైల్ నంబర్ లేదా ఇమెయిల్‌కు నోటిఫికేషన్ పంపుతుంది. ప్రతి 5 నుండి 10 నిమిషాలకు లేదా ప్రతి గంటకు స్క్రిప్ట్ అమలు చేయడానికి క్రాన్ జాబ్‌ను సెటప్ చేయండి.

Linux లో క్రాన్ జాబ్స్ యొక్క అనేక ఇతర ఉపయోగాలు ఉన్నాయి.



ఈ వ్యాసంలో, లైనక్స్‌లో ప్రతి నిమిషం క్రాన్ జాబ్స్‌ని ఎలా అమలు చేయాలో నేను మీకు చూపుతాను. నేను ప్రదర్శన కోసం డెబియన్ 9 స్ట్రెచ్‌ని ఉపయోగిస్తాను. కానీ మీకు నచ్చిన ఆధునిక లైనక్స్ పంపిణీని మీరు ఉపయోగించవచ్చు. ప్రారంభిద్దాం.



Linux లో, మీరు ఉండనవసరం లేదు రూట్ క్రాన్ ఉద్యోగాలు అమలు చేయడానికి. మీరు ఏ యూజర్‌గానైనా క్రాన్ జాబ్‌లను అమలు చేయవచ్చు. Linux లోని ప్రతి యూజర్ a ని ఉపయోగించవచ్చు క్రాంటాబ్ క్రాన్ జాబ్స్ యొక్క సొంత సెట్‌ను అమలు చేయడానికి ఫైల్.





డిఫాల్ట్‌గా, వినియోగదారుకు a లేదు క్రాంటాబ్ Linux లో ఫైల్. మీరు ఒక సృష్టించవచ్చు క్రాంటాబ్ కింది ఆదేశంతో ఫైల్:

$క్రాంటాబ్-మరియు



మీరు ఈ ఆదేశాన్ని మొదటిసారి అమలు చేస్తున్నట్లయితే, జాబితా నుండి టెక్స్ట్ ఎడిటర్‌ను ఎంచుకోమని మిమ్మల్ని అడగాలి. నేను ఎంచుకుంటాను నానో , డిఫాల్ట్ ఒకటి. మీకు నచ్చినదాన్ని మీరు ఎంచుకోవచ్చు. మీరు పూర్తి చేసిన తర్వాత, నొక్కండి .

ది క్రాంటాబ్ ఫైల్ సృష్టించబడాలి (ఇప్పటికే అందుబాటులో లేకపోతే) మరియు మీకు ఇష్టమైన టెక్స్ట్ ఎడిటర్‌తో తెరవాలి. ఇప్పుడు మీరు ఈ ఫైల్ చివరిలో మీ స్వంత క్రాన్ జాబ్‌లను జోడించవచ్చు మరియు మీరు సంతోషంగా ఉన్న తర్వాత, దాన్ని సేవ్ చేసి టెక్స్ట్ ఎడిటర్ నుండి నిష్క్రమించండి.

ప్రతి నిమిషం ఒక కమాండ్ రన్నింగ్ సింటాక్స్:

యొక్క వాక్యనిర్మాణం క్రాంటాబ్ ఫైల్ క్రింది విధంగా ఉంది:

నిమిషం రోజు రోజు నెల నెల రోజు ఆఫ్‌వీక్ కమాండ్ టు రన్

ఇక్కడ,

  • నిమిషం ఉంటుంది 0 కు 59 .
  • గంట కూడా కావచ్చు 0 కు 59 .
  • రోజు నెల ఉంటుంది 1 కు 31 .
  • నెల ఉంటుంది 1 కు 12 .
  • dayOfWeek ఉంటుంది 0 కు 7 . 0 మరియు 7 ఆదివారం అంటే, 1 సోమవారం అంటే, 2 అంటే మంగళవారం మరియు మొదలైనవి.

అమలు చేయడానికి a commandToRun ప్రతి నిమిషం ఆజ్ఞాపించండి, మీరు దానిని వ్రాయాలి క్రాంటాబ్ కింది విధంగా ఫైల్:

* * * * *commandToRun

ప్రతి నిమిషం ఒక క్రాబ్ జాబ్ రన్నింగ్:

ఇప్పుడు మేము సిద్ధాంతాలను తెలుసుకున్నాము, ఒక సాధారణ స్క్రిప్ట్‌ను చేర్చుదాం timer.sh కు క్రాంటాబ్ ఫైల్ చేయండి మరియు దానిని ఎలా నిర్వహించాలో చూడండి.

లో timer.sh స్క్రిప్ట్, నా దగ్గర ఈ క్రింది కోడ్‌లు మాత్రమే ఉన్నాయి. ఇది చేయాల్సిందల్లా ఒక క్రొత్త ఫైల్‌ను సృష్టించడం /hom/shovon/bin/timer.log (ఇప్పటికే ఉనికిలో లేకుంటే) మరియు దానికి తేదీ కమాండ్ యొక్క అవుట్‌పుట్‌ను జోడిస్తుంది.

ఇప్పుడు స్క్రిప్ట్‌ను మనకి జోడిద్దాం క్రాంటాబ్ మరియు కింది లైన్‌తో ప్రతి నిమిషం అమలు చేయనివ్వండి:

* * * * * /ఇంటికి/షోవన్/am/timer.sh

మీరు సేవ్ చేసిన తర్వాత క్రాంటాబ్ టెక్స్ట్ ఎడిటర్ నుండి ఫైల్ మరియు నిష్క్రమించండి, కొత్తది క్రాంటాబ్ ఫైల్ ఇన్‌స్టాల్ చేయాలి.

ఒక నిమిషం గడిచిన తర్వాత, ఒక కొత్త ఫైల్ timer.log దిగువ స్క్రీన్ షాట్ యొక్క గుర్తించబడిన విభాగంలో మీరు చూడగలిగే విధంగా కావలసిన డైరెక్టరీలో సృష్టించబడుతుంది.

నుండి timer.log లాగ్ ఫైల్, స్క్రిప్ట్ అని స్పష్టంగా ఉంది timer.sh ప్రతి నిమిషం నడుస్తుంది.

క్రాన్ జాబ్స్ నుండి లోపాలను పట్టుకోవడం:

క్రాన్ జాబ్ నుండి లోపాలను గుర్తించడానికి, మీరు లోపాలను a కి పంపవచ్చు లోపం. లాగ్ ఫైల్ మరియు సాధారణ అవుట్‌పుట్‌లు access.log ఉదాహరణకు ఫైల్. వాస్తవానికి మీరు మీకు కావలసిన ఏదైనా ఫైల్‌లకు పేరు పెట్టవచ్చు.

దీనిని ప్రదర్శించడానికి, నేను నా స్క్రిప్ట్‌ను సవరించాను timer.sh కొంచెం. ఇప్పుడు లోపాలు పంపబడ్డాయి లోపం. లాగ్ లో ఫైల్ / హోమ్ / షోవన్ / బిన్ డైరెక్టరీ మరియు అవుట్‌పుట్‌లు పంపబడతాయి access.log లో / హోమ్ / షోవన్ / బిన్ డైరెక్టరీ.

మొదట్లో ది /tmp/నేను_ఇక్కడ ఉండాలి ఫైల్ ఉనికిలో లేదు, కాబట్టి నేను లోపం పొందాను లోపం. లాగ్ మీరు చూడగలిగినట్లుగా ఫైల్.

ది access.log ప్రస్తుతం ఫైల్ ఖాళీగా ఉంది.

ఇప్పుడు నేను ఫైల్‌ను సృష్టించబోతున్నాను /tmp/నేను_ఇక్కడ ఉండాలి

మరియు మీరు చూడగలిగినట్లుగా, అవుట్‌పుట్ దీనిలో ఉంది access.log ఇప్పుడు ఫైల్ చేయండి.

మీకు కావాలంటే, మీరు అవుట్‌పుట్ మరియు అదే ఫైల్‌లోని లోపాలను క్రింది విధంగా దారి మళ్లించవచ్చు:

మీరు గమనిస్తే, STDIN మరియు STDERR అవుట్‌పుట్‌లు పంపబడతాయి out.log ఫైల్.

ఉద్యోగాన్ని మళ్లీ అమలు చేయడానికి ముందు రన్నింగ్ పూర్తయిందని నిర్ధారించుకోవడం:

ఇది పని చేయడానికి, ఉద్యోగం ప్రారంభమైన తర్వాత మీరు తాత్కాలిక ఫైల్‌ను సృష్టించవచ్చు మరియు అది పూర్తయ్యే ముందు దాన్ని తీసివేయవచ్చు. ఉద్యోగాన్ని ప్రారంభించడానికి ముందు తాత్కాలిక ఫైల్ ఉందో లేదో మీరు తనిఖీ చేయవచ్చు. అది జరిగితే, మీరు ఉద్యోగం నుండి నిష్క్రమించవచ్చు మరియు తాత్కాలిక ఫైల్ అందుబాటులో లేనప్పుడు మాత్రమే ఉద్యోగాన్ని అమలు చేయవచ్చు.

ఈ సాధారణ స్క్రిప్ట్ అది చేస్తుంది.

మీరు గమనిస్తే, ది timer.pid ఫైల్ సృష్టించబడింది.

చదవడం access.log మునుపటి క్రాన్ జాబ్ రన్నింగ్ పూర్తయ్యేలోపు క్రాన్ జాబ్ రన్ కాదని ఫైల్ రుజువు చేస్తుంది. మీరు చూడగలిగినట్లుగా, ఇది 01:32:01 వద్ద నడిచింది మరియు తదుపరిసారి 01:33:01 వద్ద అమలు చేయాలి, కానీ అది జరగలేదు. బదులుగా, ఇది 3 నిమిషాల తరువాత, 01:35:01 వద్ద నడిచింది.

సులువు డీబగ్గింగ్ కోసం క్రాన్ జాబ్ అవుట్‌పుట్‌లను నిర్వహించడం:

మీ క్రాన్ ఉద్యోగాన్ని డీబగ్ చేయడం సులభం చేయడానికి మీరు అవుట్‌పుట్‌లను చక్కగా ఫార్మాట్ చేయవచ్చు.

ఇది ఎలా చేయవచ్చో ఒక ఉదాహరణ క్రింది స్క్రిప్ట్‌లో ఇవ్వబడింది.

మీరు గమనిస్తే, అవుట్‌పుట్‌లు, లోపాలు మరియు విజయ సందేశాలు లాగ్ ఫైల్‌లో చక్కగా ముద్రించబడతాయి.

మీరు క్రాన్ జాబ్స్ మరియు షెల్ స్క్రిప్ట్‌లతో అద్భుతమైన పనులు చేయవచ్చు. నేను ఇక్కడ కొన్ని ఆలోచనలను ప్రదర్శించాను. కానీ ఆకాశం మీ పరిమితి. మీకు ఏవైనా ఆలోచనలతో ప్రయోగాలు చేయడానికి సంకోచించకండి. ఈ కథనాన్ని చదివినందుకు ధన్యవాదాలు.