हर घंटे में एक बार कमांड चलाना


12

मेरे पास स्फिंक्स के लिए एक अनुक्रमणिका है, और मैं चाहता हूं कि यह हर घंटे एक बार लिनक्स में चले। यह मैं कैसे करूंगा?

linux 

जवाबों:


14

चूँकि हर कोई संक्षिप्त उत्तर पोस्ट कर रहा है, मुझे लगा कि मैं थोड़ा अधिक वर्णनात्मक होगा ...

cron एक डेमन अधिकांश * निक्स सिस्टम पर पाया जाता है जो निर्धारित अंतराल पर अनुसूचित कमांड चलाता है।

आप अपनी पसंद के फ़ोल्डर में कॉपी करके सूची में एक स्क्रिप्ट जोड़ें:

  • cron.daily
  • cron.hourly
  • cron.monthly
  • cron.weekly

ये फोल्डर आमतौर पर /etcफोल्डर के नीचे पाए जाते हैं ।


2
cron। * फ़ोल्डर बहुत विशिष्ट विशिष्ट हैं। crontab निर्दिष्ट अंतराल पर क्रोन द्वारा चलाए जा रहे आइटम का सार्वभौमिक तरीका है।
एमडीमैरा

सच। मैं सिर्फ एक उदाहरण दे रहा हूं। crontab आप वैसे भी बहुत अधिक नियंत्रण देता है।
नाथन उस्मान


7

बस अलग होने के लिए -

अपनी आवश्यकताओं के आधार पर आप वॉच कमांड का उपयोग कर सकते हैं।

  watch --interval=3600 command

1
क्या यह हर 1 घंटे में कमांड चलाता है; या यह कमांड चलाता है, 1h प्रतीक्षा करें, और फिर फिर से चलाएं? ध्यान दें कि यदि कमांड को बहुत लंबा समय लगता है तो यह एक अच्छा अंतर है। (मैं पूछता हूं क्योंकि यह मैन पेज से स्पष्ट नहीं था।)
मालाबार

वास्तव में यह कठिन नहीं है कि इसे स्वयं आजमाएँ।
mimoralea


2

आप कमांड दर्ज करके क्रोन फ़ाइल को संपादित करेंगे crontab -e

जो आपको एक 'vi' संपादक (वर्तमान लिनक्स और फ्रीबीएसडी के लिए) में ड्रॉप करता है।

फिर निम्नलिखित दर्ज करें: (प्रविष्टि के लिए 'i' टाइप करें)

00 * * * * /path/to/sphinx_indexer.exe

तब सहेजें और बाहर निकलें (प्रेस 'esc' तो निम्न टाइप करें)

:wq



1

यदि आपको बस एक बार इसकी आवश्यकता है, तो स्थायी रूप से आपके साथ की तरह नहीं cron, और watchसमाधान पर्याप्त रूप से लचीला नहीं है, आप अच्छी पुरानी बैश स्क्रिप्टिंग का भी उपयोग कर सकते हैं:

while true; do
   # do stuff
   sleep $[60 * 60]
done

यह #do स्टफ के रूप में काम नहीं करेगा यदि इसे निष्पादित करने में 3599 सेकंड लगते हैं और फिर आवश्यकता के अनुसार स्क्रिप्ट को वार्डों पर अगले दूसरे को ट्रिगर करना होगा और घड़ी को 0 पर रीसेट करना होगा लेकिन इस मामले में यह 3599 वें सेकंड में विराम देगा और फिर अगले 3600 सेकंड के लिए सोने के लिए आगे बढ़ें। ओवरलैप नहीं होगा, लेकिन पुनरावृत्तियों के बीच एक अप्रत्याशित अंतर होगा। यहां मुझे लगता है कि उपयोगकर्ता क्रोन के बिना हर घंटे एक नौकरी निष्पादित करने की कोशिश कर रहा है।
मन्नोज

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