Cron के साथ अपने स्क्रिप्ट शेड्यूल करना

Bash Scripting परिचय

Alex Scriven

Data Scientist

स्क्रिप्ट शेड्यूल क्यों करें?

 

कई स्थितियों में स्क्रिप्ट शेड्यूल करना उपयोगी होता है:

  1. नियमित काम जो होने चाहिए. रोज़, साप्ताहिक, या दिन में कई बार.
    • आप कैलेंडर रिमाइंडर लगा सकते हैं, पर अगर भूल गए तो?
  2. संसाधनों का बेहतर उपयोग (सुबह तड़के स्क्रिप्ट चलाना)

cron से स्क्रिप्ट शेड्यूल करना आधुनिक डेटा इन्फ्रास्ट्रक्चर की जरूरी जानकारी है.

Bash Scripting परिचय

cron क्या है?

 

Cron 70 के दशक से unix-जैसी सिस्टम्स का हिस्सा है. इंसान इतने समय से आलसी रहे हैं!

नाम ग्रीक शब्द, chronos (समय) से आता है.

यह crontab से चलता है, जो एक फ़ाइल है जिसमें cronjobs होते हैं. हर cronjob बताता है कि crontab कौन-सा कोड कब चलाए.

Bash Scripting परिचय

Crontab - cronjobs का ड्राइवर

 

आप इस कमांड से देख सकते हैं कि अभी कौन-से शेड्यूल (cronjobs) सेट हैं:

crontab -l
crontab: no crontab for user

लगता है हमें एक शेड्यूल (cronjob) बनाना होगा!

Bash Scripting परिचय

Crontab और cronjob संरचना

विकिपीडिया की यह बेहतरीन इमेज दिखाती है कि crontab फ़ाइल में cronjob कैसे बनता है. आप कई cronjobs रख सकते हैं, हर लाइन में एक.

crontab की संरचना

  • सेट करने को 5 स्टार होते हैं, हर टाइम यूनिट के लिए एक
  • डिफ़ॉल्ट * का अर्थ है 'हर'
Bash Scripting परिचय

Cronjob उदाहरण

आइए कुछ cronjob उदाहरण देखते हैं:

5 1 * * * bash myscript.sh

  • Minutes स्टार 5 है (घंटे के 5 मिनट बाद). Hours स्टार 1 है (1am के बाद). आखिरी तीन * हैं, यानी हर दिन और हर महीना
    • समग्र: हर दिन 1:05am पर चलाएँ।

 

15 14 * * 7 bash myscript.sh

  • Minutes स्टार 15 है (घंटे के 15 मिनट बाद). Hours स्टार 14 है (2pm के बाद). अगली दो * हैं (महीने का हर दिन, साल का हर महीना). आखिरी स्टार दिन 7 है (रविवार).
    • समग्र: हर रविवार 2:15pm पर चलाएँ।
Bash Scripting परिचय

एडवांस्ड cronjob संरचना

अगर आप दिन में कई बार या हर 'X' समयांतराल पर कुछ चलाना चाहें, तो यह भी संभव है:

  • खास अंतराल के लिए कॉमा का उपयोग करें. उदाहरण:
    • 15,30,45 * * * * दूसरी स्टार से तय घंटों में 15, 30 और 45 मिनट पर चलेगा. यहाँ यह हर घंटे, हर दिन आदि है.
  • 'हर X इंक्रीमेंट' के लिए स्लैश का उपयोग करें. उदाहरण:
    • */15 * * * * हर 15 मिनट में चलता है. साथ ही हर घंटे, दिन आदि.
Bash Scripting परिचय

आपका पहला cronjob

आइए extract_data.sh स्क्रिप्ट को हर सुबह 1:30am पर शेड्यूल करें. आपके स्टेप्स इस प्रकार हैं:

  1. टर्मिनल में crontab -e टाइप करें ताकि अपनी cronjobs सूची एडिट करें.
    • यह पूछ सकता है कि कौन-सा एडिटर उपयोग करना है. nano आसान विकल्प है और vi (vim) से सीखना सरल है.
  2. cronjob बनाएँ:
    • 30 1 * * * extract_data.sh
Bash Scripting परिचय

आपका पहला cron job

3. सेव करने के लिए एडिटर से बाहर निकलें

अगर आप nano (Mac पर) उपयोग कर रहे हों, तो ctrl + o, फिर enter, फिर बाहर निकलने को ctrl + x.

आप यह संदेश देखेंगे: crontab: installing new crontab

4. crontab -l चलाकर जाँचें कि यह जुड़ गया है.

30 1 * * * extract_data.sh

बहुत बढ़िया!

Bash Scripting परिचय

अभ्यास करते हैं!

Bash Scripting परिचय

Preparing Video For Download...