रेल के लिए एक क्रॉन नौकरी: सर्वोत्तम अभ्यास?


295

रेल के वातावरण में अनुसूचित कार्यों को चलाने का सबसे अच्छा तरीका क्या है? स्क्रिप्ट / धावक? रैक? मैं हर कुछ मिनट में काम चलाना चाहूंगा।


149
Google से यहां आने वालों के लिए, बेहतर तरीकों के लिए स्वीकृत उत्तर से परे देखें।
जर्दोको

4
जब भी स्वीकार किए गए उत्तर की तुलना में उत्तर अधिक उचित लगता है, जो एक पुराना हैक है।
रोब

2
कृपया यह भी सावधान रहें कि कम से कम एक उत्तर मान लें कि आपके पास एक निश्चित रत्न स्थापित है।
टैस

कुछ जोड़े (जो मुझे पता चला) अच्छी प्रथाओं को यहाँ संक्षेप में प्रस्तुत किया गया है। बुद्धिमानीशशीक
थिबुत बर्रे

कई मामलों में क्रोन जॉब्स से बदबू आती है। साइडकीक / रेसक्यू (या अन्य पृष्ठभूमि कार्यकर्ता) के माध्यम से बेहतर लेखन अनुसूचक, या एक डेमन (कम कार्यात्मक और निगरानी योग्य) लिखें। क्रोन नौकरियों में कम से कम कुछ खराब चीजें हैं: 1) एक उदाहरण के लिए ताला लगाना एक दर्द है; 2) निगरानी आसानी से नहीं की जा सकती; 3) अपवाद हैंडलिंग को फिर से मैन्युअल रूप से लिखा जाना चाहिए; 4) पुनरारंभ करना आसान नहीं है; 5) सभी उपरोक्त मुद्दों को आसानी से पृष्ठभूमि श्रमिकों द्वारा हल करना।
दिमित्री पॉलुस्किन

जवाबों:


110

मैं रेक एप्रोच का उपयोग कर रहा हूँ (जैसा कि हर्को द्वारा समर्थित है )

Lib / कार्यों / cron.rake नामक फ़ाइल के साथ।

task :cron => :environment do
  puts "Pulling new requests..."
  EdiListener.process_new_messages
  puts "done."
end

कमांड लाइन से निष्पादित करने के लिए, यह सिर्फ "रेक क्रोन" है। फिर यह कमांड वांछित के रूप में ऑपरेटिंग सिस्टम क्रोन / टास्क शेड्यूलर पर रखी जा सकती है।

अद्यतन यह एक पुराना सवाल और जवाब है! कुछ नई जानकारी:

  • हरोकू क्रोन सेवा जिसे मैंने संदर्भित किया है, जब से हरोकू शेड्यूलर द्वारा प्रतिस्थापित किया गया है
  • लगातार कार्यों के लिए (esp। जहाँ आप रेल पर्यावरण स्टार्टअप लागत से बचना चाहते हैं) मेरा पसंदीदा तरीका स्क्रिप्ट को कॉल करने के लिए सिस्टम क्रॉन का उपयोग करना है जो पृष्ठभूमि में आवश्यक कार्य को लागू करने के लिए एक सुरक्षित / निजी webhook एपीआई प्रहार करेगा। या (बी) सीधे आपके पसंद की कतार प्रणाली पर एक कार्य enqueue

इस मामले के लिए क्रोन प्रविष्टि क्या होनी चाहिए, इसलिए ओएस को रेक कार्य का सही रास्ता पता है?
जर्दोको

13
एनबी: इन दिनों जब भी मैं (जिम गार्विन का जवाब देख रहा हूं) का उपयोग कर रहा हूं, लेकिन रेक कार्य को चलाने के लिए एक कच्ची क्रोन प्रविष्टि कुछ इस तरह होगी: 30 4 * * / bin / bash -l -c 'cd / opt / railsapp && RAILS_ENV = उत्पादन रेक क्रोन
शैल्ट

1
आप इसे कंसोल से कैसे कहते हैं? मैंने किया load "#{Rails.root}/lib/tasks/cron.rake"और किया rake cron, लेकिन नाम लिया गया नाम: अपरिभाषित स्थानीय चर या विधि `क्रोन 'मुख्य के लिए: वस्तु
बी सेवन

3
इस दृष्टिकोण के साथ समस्या :environmentनिर्भरता है। हमारे पास एक बहुत भारी रेल एप्लिकेशन है जिसे शुरू होने में लंबा समय लगता है, हमारे रेक को हर मिनट कहा जाता है और रेल के वातावरण को शुरू करने वाले अधिक संसाधनों का उपभोग करते हैं जो कार्य को अंजाम दे रहे हैं । मुझे क्रॉन के माध्यम से बुलाए जाने के लिए पहले से ही शुरू किए गए रेल वातावरण से प्यार है , नियंत्रक दृष्टिकोण और एक पर्यावरण के बीच कुछ होना चाहिए ।
फुगिलीन

इस कार्य की अवधि क्या है? मैं एक शर्त का उपयोग कर रहा हूँ। मैं जानना चाहता हूं कि यह नियमित रूप से कैसे चलाया जाता है। मुझे इसके बारे में किसी भी वेबसाइट में जानकारी नहीं मिल रही है।
शुभम चौधरी

254

मैंने जब भी परियोजनाओं पर अत्यधिक लोकप्रिय का उपयोग किया है जो निर्धारित कार्यों पर बहुत अधिक निर्भर करते हैं, और यह बहुत अच्छा है। यह आपको कॉस्टैब प्रारूप से निपटने के बजाय अपने निर्धारित कार्यों को परिभाषित करने के लिए एक अच्छा डीएसएल देता है। README से:

जब भी कोई रूबी रत्न होता है जो क्रोन नौकरियों को लिखने और तैनात करने के लिए एक स्पष्ट वाक्यविन्यास प्रदान करता है।

README से उदाहरण:

every 3.hours do
  runner "MyModel.some_process"       
  rake "my:rake:task"                 
  command "/usr/bin/my_great_command"
end

every 1.day, :at => '4:30 am' do 
  runner "MyModel.task_to_run_at_four_thirty_in_the_morning"
end

22
अगर इसे हर मिनट चलाया जाए तो पर्यावरण हर बार फिर से चालू हो जाएगा, जो महंगा हो सकता है। ऐसा लगता है कि github.com/ssoroka/scheduler_daemon इससे बचता है।
लुललाला

3
अपने संस्करण नियंत्रण प्रणाली के साथ क्रोन विन्यास रखने के लिए +1
ब्रिटोहेलोरन

3
मुझे लगता है कि यह सबसे अच्छा समाधान है। यदि आप रेल का उपयोग कर रहे हैं, तो मुझे लगता है कि रेल में सब कुछ लिखना बेहतर है। इस दृष्टिकोण के साथ आप सर्वर को बदलते समय क्रोन कार्य के बारे में भी भूल सकते हैं, यह ऐप के साथ चलता है।
एड्रियन मैट्टो

जब भी वास्तव में मददगार है (एक पुराने मुक्त संस्करण के रूप में अच्छी तरह से है) के बारे में एक महान Railscast है
ऐसोफबसग्रुप

@ जब भी, मूल रूप से क्रोन नौकरियों के लेखन के लिए एक डोमेन विशिष्ट भाषा है। यह आपके रेल सर्वर पर नियमित क्रोन सिंटैक्स में संकलित करता है और क्रोन वह है जो आपके द्वारा निर्दिष्ट नौकरियों (आमतौर पर रेल रन के माध्यम से) को निष्पादित करता है।
ग्रेग

19

हमारे प्रोजेक्ट में हमने पहली बार जब भी मणि का इस्तेमाल किया, लेकिन कुछ समस्याओं का सामना किया।

हमने तब RUFUS SCHEDULER मणि पर स्विच किया , जो रेल में शेड्यूलिंग कार्यों के लिए बहुत आसान और विश्वसनीय निकला।

हमने साप्ताहिक और दैनिक मेल भेजने के लिए, और यहां तक ​​कि कुछ आवधिक रेक कार्यों या किसी भी विधि को चलाने के लिए इसका उपयोग किया है।

इसमें इस्तेमाल किया गया कोड इस प्रकार है:

    require 'rufus-scheduler'

    scheduler = Rufus::Scheduler.new

    scheduler.in '10d' do
      # do something in 10 days
    end

    scheduler.at '2030/12/12 23:30:00' do
      # do something at a given point in time
    end

    scheduler.every '3h' do
      # do something every 3 hours
    end

    scheduler.cron '5 0 * * *' do
      # do something every day, five minutes after midnight
      # (see "man 5 crontab" in your terminal)
    end

अधिक जानने के लिए: https://github.com/jmettraux/rufus-scheduler


1
रूफस के लिए, जैसा कि मैंने इसे सरल रूबी परियोजनाओं या पूर्ण रेल एप्लिकेशन दोनों के लिए उपयोग किया है।
पाउलो फिडाल्गो

8
क्या आप जब भी आपके साथ भागे मुद्दों के बारे में थोड़ा और विशिष्ट हो सकते हैं?
ड्यूक

अब तक का सबसे शानदार जवाब
डार्लान डाइटरिच

17

अपने कार्यों को पूरा करने में बहुत लंबा समय नहीं लगता है, बस प्रत्येक कार्य के लिए एक कार्रवाई के साथ एक नया नियंत्रक बनाएं। नियंत्रक कोड के रूप में कार्य के तर्क को लागू करें, फिर ओएस स्तर पर एक क्रोनजोब स्थापित करें जो उचित समय के अंतराल पर इस नियंत्रक और कार्रवाई के URL को लागू करने के लिए उपयोग करता है। इस विधि के फायदे हैं:

  1. एक सामान्य नियंत्रक के रूप में अपने सभी रेल वस्तुओं के लिए पूर्ण पहुँच है।
  2. सामान्य क्रियाओं को करने की तरह ही विकसित और परीक्षण कर सकते हैं।
  3. एक साधारण वेब पेज से भी अपने कार्यों का पालन कर सकते हैं।
  4. अतिरिक्त रूबी / रेल प्रक्रियाओं को फायर करके किसी भी अधिक मेमोरी का उपभोग न करें।

12
दूसरों को इस कार्य तक पहुंचने से कैसे रोकें? यदि कार्य cpu और इसे अक्सर बुलाया समस्याओं का कारण होगा।
१५

44
मुझे पता है कि यह कुछ समय पहले था, लेकिन यह निश्चित रूप से अब क्रॉन जॉब्स करने का सबसे अच्छा तरीका नहीं है। वेब इंटरफ़ेस के माध्यम से क्यों जाना जाता है, यह उल्लंघन करते हुए कि इंटरफ़ेस वास्तव में क्या दर्शाता है, जब रेल पर्यावरण तक पहुंचने के लिए बहुत सारे अन्य तरीके हैं?
मैचू

6
योग्यता "अपने कार्यों को पूरा करने में बहुत लंबा समय नहीं लगता है" एक विशाल की तरह लगता है। क्या यह एक दृष्टिकोण का उपयोग करना बेहतर नहीं होगा जो आमतौर पर अधिक उपयोगी होता है, और न केवल उन मामलों में जहां कार्य बहुत जल्दी होते हैं? इस तरह से आप लगातार पुनर्मूल्यांकन नहीं कर रहे हैं कि क्या इस या उस कार्य को एक अलग दृष्टिकोण का उपयोग करके फिर से लिखना होगा।
iconoclast

77
यह पुराना सवाल "रेल क्रोन" के लिए शीर्ष Google परिणाम है। यह उत्तर सर्वोत्तम दृष्टिकोण से दूर है। कृपया अधिक समझदार सुझावों के लिए अन्य प्रतिक्रियाएँ देखें।
जिम गार्विन

2
सबसे अच्छा तरीका नहीं है। आपके पास REST सेवा को कॉल किए बिना एक क्रॉन जॉब के माध्यम से रेल तक पहुँचने के लिए कई अन्य तरीके हैं। रेक दृष्टिकोण निश्चित रूप से बेहतर है
शाइन

10

स्क्रिप्ट / रनर और रेक कार्य क्रोन जॉब्स के रूप में चलाने के लिए पूरी तरह से ठीक हैं।

यहाँ एक बहुत महत्वपूर्ण बात है जो आपको याद रखनी चाहिए जब आप क्रोन जॉब्स चलाते हैं। संभवत: उन्हें आपके ऐप की रूट डायरेक्टरी से नहीं बुलाया जाएगा। इसका मतलब है कि आपकी सभी फ़ाइलों के लिए (पुस्तकालयों के विपरीत) स्पष्ट मार्ग के साथ किया जाना चाहिए: जैसे File.dirname (__ FILE__) + "/ other_file"। इसका मतलब यह भी है कि आपको यह जानना होगा कि उन्हें किसी अन्य निर्देशिका से कैसे स्पष्ट रूप से कॉल करना है :-)

जांचें कि क्या आपका कोड किसी अन्य निर्देशिका से चलाया जा रहा है

# from ~
/path/to/ruby /path/to/app/script/runner -e development "MyClass.class_method"
/path/to/ruby /path/to/rake -f /path/to/app/Rakefile rake:task RAILS_ENV=development

इसके अलावा, क्रोन जॉब्स शायद आपके अनुसार नहीं चलती हैं, इसलिए आपके द्वारा .bashrc में डाले गए किसी भी शॉर्टकट पर निर्भर न हों। लेकिन यह सिर्फ एक मानक क्रोन टिप है ;-)


आप किसी भी उपयोगकर्ता के रूप में काम चला सकते हैं (बस इच्छित उपयोगकर्ता के लिए crontab प्रविष्टि सेट करें) लेकिन आपका सही है कि प्रोफ़ाइल और लॉगिन स्क्रिप्ट नहीं चलेंगी और आप अपने घर निर्देशिका में शुरू नहीं करेंगे। इसलिए कमांड को "cd" से शुरू करना आम है जैसा कि @ luke-franci की टिप्पणी में दिखाया गया है
टॉम विल्सन

10

जब भी (और क्रोन) समस्या यह है कि यह हर बार निष्पादित होने पर रेल के वातावरण को फिर से लोड करता है, जो कि एक वास्तविक समस्या है जब आपके कार्य अक्सर होते हैं या करने के लिए बहुत सारे आरंभीकरण कार्य होते हैं। मेरे पास इसके कारण उत्पादन में मुद्दे हैं और आपको चेतावनी देनी चाहिए।

Rufus अनुसूचक यह मेरे लिए करता है ( https://github.com/jmettraux/rufus-scheduler) )

जब मेरे पास दौड़ने के लिए लंबी नौकरियां हों, तो मैं इसे देरी से_बॉज ( https://github.com/collectiveidea/delayb_job) के साथ उपयोग करता हूं ) के

आशा है कि ये आपकी मदद करेगा!


10

मैं resque / resque अनुसूचक का बहुत बड़ा प्रशंसक हूं । आप न केवल क्रोन जैसे कार्यों को दोहरा सकते हैं, बल्कि विशिष्ट समय पर कार्य भी कर सकते हैं। नकारात्मक पक्ष यह है कि इसमें एक रेडिस सर्वर की आवश्यकता होती है।


10

यह दिलचस्प है कि किसी ने भी सिडिटक का उल्लेख नहीं किया । यदि आप पहले से ही साइडकीक का उपयोग कर रहे हैं तो यह अच्छा है।

साइडिटक के लिए आवर्ती श्रमिकों को परिभाषित करने के लिए सिद्दीक एक सरल एपीआई प्रदान करता है।

नौकरी इस तरह दिखेगा:

class MyWorker
  include Sidekiq::Worker
  include Sidetiq::Schedulable

  recurrence { hourly.minute_of_hour(15, 45) }

  def perform
    # do stuff ...
  end
end

8

दोनों ठीक काम करेंगे। मैं आमतौर पर स्क्रिप्ट / रनर का उपयोग करता हूं।

यहाँ एक उदाहरण है:

0 6 * * * cd /var/www/apps/your_app/current; ./script/runner --environment production 'EmailSubscription.send_email_subscriptions' >> /var/www/apps/your_app/shared/log/send_email_subscriptions.log 2>&1

यदि आप अपने डेटाबेस से कनेक्ट करने के लिए सही कॉन्फ़िग फ़ाइल लोड करते हैं, तो ऐसा करने के लिए आप एक शुद्ध-रूबी स्क्रिप्ट भी लिख सकते हैं।

एक बात ध्यान में रखें कि यदि स्मृति कीमती है, तो वह स्क्रिप्ट / रनर (या 'पर्यावरण' पर निर्भर एक रेक कार्य) पूरे रेल वातावरण को लोड करेगा। यदि आपको केवल डेटाबेस में कुछ रिकॉर्ड सम्मिलित करने की आवश्यकता है, तो यह मेमोरी का उपयोग करेगा जो आपके पास वास्तव में नहीं है। यदि आप अपनी स्क्रिप्ट लिखते हैं, तो आप इससे बच सकते हैं। मुझे वास्तव में अभी तक ऐसा करने की आवश्यकता नहीं है, लेकिन मैं इस पर विचार कर रहा हूं।


8

क्रेकेन (रेक सेंट्रिक क्रॉन जॉब्स) का उपयोग करें


1
क्रॉन जॉब्स लिखना कितना कठिन है, इसके लिए बेहतर मणि डाउनलोड करें
f0ster

1
यह कठिन नहीं है - लेकिन उन्हें गिट में संग्रहित किया जाना और हमेशा तैनाती के लिए तैयार रहना एक टीम में एक काम होने पर एक बड़ा धन है।
थिबुत बर्रे

5

मैं बैकग्राउंड का इस्तेमाल करता हूं।

http://backgroundrb.rubyforge.org/

मैं इसे अनुसूचित कार्यों के साथ-साथ सामान्य क्लाइंट / सर्वर संबंध के लिए बहुत लंबा समय लेने वाले कार्यों को चलाने के लिए उपयोग करता हूं।


3

यहां बताया गया है कि मैंने अपने क्रोन कार्यों को कैसे सेट किया है। मेरे पास SQL ​​डेटाबेस के दैनिक बैकअप बनाने के लिए एक है (रेक का उपयोग करके) और दूसरा महीने में एक बार कैश समाप्त करने के लिए। फ़ाइल लॉग / cron_log में कोई भी आउटपुट लॉग किया गया है। मेरा कोंट्राब इस तरह दिखता है:

crontab -l # command to print all cron tasks
crontab -e # command to edit/add cron tasks

# Contents of crontab
0 1 * * * cd /home/lenart/izziv. whiskas.si/current; /bin/sh cron_tasks >> log/cron_log 2>&1
0 0 1 * * cd /home/lenart/izziv.whiskas.si/current; /usr/bin/env /usr/local/bin/ruby script/runner -e production lib/monthly_cron.rb >> log/cron_log 2>&1

पहला क्रोन कार्य दैनिक db बैकअप बनाता है। Cron_tasks की सामग्री निम्नलिखित हैं:

/usr/local/bin/rake db:backup RAILS_ENV=production; date; echo "END OF OUTPUT ----";

दूसरा कार्य बाद में सेटअप किया गया था और महीने में एक बार कैश समाप्त करने के लिए स्क्रिप्ट / रनर का उपयोग करता है (lib / मासिक_क्रोन.rb):

#!/usr/local/bin/ruby
# Expire challenge cache
Challenge.force_expire_cache
puts "Expired cache for Challenges (Challenge.force_expire_cache) #{Time.now}"

मुझे लगता है कि मैं किसी और तरीके से डेटाबेस का बैकअप ले सकता हूं लेकिन अभी तक यह मेरे लिए काम करता है :)

रास्तों रेक करने के लिए और गहरे लाल रंग का अलग सर्वर पर भिन्न हो सकते हैं। आप देख सकते हैं कि वे कहां हैं:

whereis ruby # -> ruby: /usr/local/bin/ruby
whereis rake # -> rake: /usr/local/bin/rake

3

कुछ साइडकीक या रेस्क्यू का उपयोग करना कहीं अधिक मजबूत समाधान है। वे दोनों रिटायरिंग जॉब्स, REDIS लॉक के साथ विशिष्टता, निगरानी और समय-निर्धारण का समर्थन करते हैं।

ध्यान रखें कि रेसक्यू एक मृत परियोजना है (सक्रिय रूप से बनाए नहीं रखा गया है), इसलिए साइडकीक एक बेहतर विकल्प है। यह अधिक प्रदर्शन करने वाला भी है: साइडकीक एक सिंगल, मल्टीथ्रेड प्रक्रिया पर कई श्रमिकों को चलाता है जबकि रेस्क प्रत्येक कार्यकर्ता को एक अलग प्रक्रिया में चलाता है।


यह एक सही उत्तर है। कई अच्छे फीचर्स के बारे में भूल सकते हैं, जो साइडकीक या रेस्क्यू प्रदान कर रहे हैं, जैसे कि क्या हो रहा है इसकी निगरानी के लिए वेब इंटरफेस: रनिंग, फेल या शेड्यूल की संख्या, उन्हें आसानी से पुनः आरंभ करना, अनूठे कर्मचारियों के लिए लॉक, थ्रॉटलिंग और लिमिटिंग, आदि
दिमित्री पॉलुस्किन

3

मैंने हाल ही में जिन परियोजनाओं पर काम किया है, उनके लिए कुछ क्रॉन जॉब्स बनाए हैं।

मैंने पाया कि मणि घड़ी की कल बहुत उपयोगी है।

require 'clockwork'

module Clockwork
  every(10.seconds, 'frequent.job')
end

तुम भी इस मणि का उपयोग कर अपनी पृष्ठभूमि नौकरी अनुसूची कर सकते हैं। प्रलेखन और आगे की मदद के लिए https://github.com/Rykian/clockwork देखें



2

एक बार मुझे भी यही निर्णय लेना पड़ा और मैं आज उस फैसले से वास्तव में खुश हूं। रेस्क्यू शेड्यूलर का उपयोग करें क्योंकि न केवल एक अलग रेडिस आपके डीबी से लोड को बाहर निकालेगा, आपके पास रिसक-वेब जैसे कई प्लगइन्स तक पहुंच भी होगी जो एक महान उपयोगकर्ता इंटरफ़ेस प्रदान करता है। जैसे ही आपका सिस्टम विकसित होता है, आपके पास शेड्यूल करने के लिए अधिक से अधिक कार्य होंगे ताकि आप उन्हें एक ही स्थान से नियंत्रित कर पाएंगे।


1

संभवतः ऐसा करने का सबसे अच्छा तरीका यह है कि आप जिन कार्यों की ज़रूरत है उन्हें लिखने के लिए रेक का उपयोग करें और बस इसे कमांड लाइन के माध्यम से निष्पादित करें।

आप बहुत मददगार देख सकते हैं railscasts में वीडियो

इसके अलावा इस अन्य संसाधनों पर एक नज़र डालें:


मैंने इस ट्यूटोरियल में सिंटैक्स का उपयोग करने का असफल प्रयास किया। टास्क को अंजाम नहीं दिया गया।
टैस

1

मैंने घड़ी की मणि का इस्तेमाल किया और यह मेरे लिए बहुत अच्छा काम करता है। clockworkdमणि भी है जो एक स्क्रिप्ट को डेमन के रूप में चलाने की अनुमति देता है।


0

मुझे वास्तव में यकीन नहीं है, मुझे लगता है कि यह कार्य पर निर्भर करता है: कितनी बार चलना है, रेल परियोजना के साथ कितना जटिल और कितना सीधा संचार की आवश्यकता है आदि। मुझे लगता है कि अगर सिर्फ "एक सबसे अच्छा तरीका" था कुछ करने के लिए था , ऐसा करने के लिए कई अलग-अलग तरीके नहीं होंगे।

रेल परियोजना में मेरी आखिरी नौकरी में, हमें एक बैच आमंत्रण मेलर (सर्वेक्षण आमंत्रण, स्पैमिंग नहीं) बनाने की आवश्यकता थी, जो कि सर्वर के पास जब भी योजना बनाई मेल भेजनी चाहिए। मुझे लगता है कि हम अपने द्वारा बनाए गए रेक कार्यों को चलाने के लिए डेमन टूल्स का उपयोग करने जा रहे थे ।

दुर्भाग्य से, हमारी कंपनी को कुछ पैसे की समस्या थी और मुख्य प्रतिद्वंद्वी द्वारा "खरीदा" गया था, इसलिए परियोजना कभी पूरी नहीं हुई थी, इसलिए मुझे नहीं पता कि हम अंततः क्या उपयोग करेंगे।


0

मैं क्रोन चलाने के लिए स्क्रिप्ट का उपयोग करता हूं, जो क्रोन चलाने का सबसे अच्छा तरीका है। यहाँ क्रोन के लिए कुछ उदाहरण है,

ओपन क्रोनटैब -> सुडो क्रॉस्टैब-ई

और चिपकाएँ पंक्तियाँ:

00 00 * * * wget https: // your_host / some_API_end_point

यहाँ कुछ क्रोन प्रारूप है, आपकी सहायता करेगा

::CRON FORMAT::

क्रोन प्रारूप तालिका

Examples Of crontab Entries
15 6 2 1 * /home/melissa/backup.sh
Run the shell script /home/melissa/backup.sh on January 2 at 6:15 A.M.

15 06 02 Jan * /home/melissa/backup.sh
Same as the above entry. Zeroes can be added at the beginning of a number for legibility, without changing their value.

0 9-18 * * * /home/carl/hourly-archive.sh
Run /home/carl/hourly-archive.sh every hour, on the hour, from 9 A.M. through 6 P.M., every day.

0 9,18 * * Mon /home/wendy/script.sh
Run /home/wendy/script.sh every Monday, at 9 A.M. and 6 P.M.

30 22 * * Mon,Tue,Wed,Thu,Fri /usr/local/bin/backup
Run /usr/local/bin/backup at 10:30 P.M., every weekday. 

आशा है कि यह आपकी मदद करेगा :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.