सवाल मैं क्रॉन नौकरी कैसे स्थापित करूं?


मैं नियमित आधार पर चलाने के लिए एक कार्य निर्धारित करना चाहता हूं और सुना है कि क्रॉन ऐसा करने का तरीका है।

उबंटू में मैं क्रॉन नौकरियां कैसे जोड़ूं?


486
2017-08-16 08:25


मूल




जवाब:


इन फ़ोल्डर्स में से एक में एक शेल स्क्रिप्ट डालें: /etc/cron.daily, /etc/cron.hourly, /etc/cron.monthly या /etc/cron.weekly

यदि ये आपके लिए पर्याप्त नहीं हैं, तो आप अधिक विशिष्ट कार्य जोड़ सकते हैं उदा। महीने में दो बार या हर 5 मिनट। टर्मिनल पर जाएं और टाइप करें:

crontab -e

यह आपकी व्यक्तिगत क्रोंटैब (क्रॉन कॉन्फ़िगरेशन फ़ाइल) खुल जाएगा। उस फ़ाइल में पहली पंक्ति यह सब बताती है! प्रत्येक पंक्ति में आप एक कमांड को चलाने और उसके शेड्यूल को परिभाषित कर सकते हैं, और जब आप इसे लटकाते हैं तो प्रारूप काफी सरल होता है। संरचना है:

minute hour day-of-month month day-of-week command

सभी संख्याओं के लिए आप सूचियों का उपयोग कर सकते हैं, उदा। 5,34,55 मिनट के क्षेत्र में 5 अतीत, 34 अतीत, और 55 घंटे जो भी घंटे परिभाषित किया गया है, का मतलब होगा।

आप अंतराल का भी उपयोग कर सकते हैं। उन्हें इस प्रकार परिभाषित किया गया है: */20। इस उदाहरण का मतलब हर 20 वां है, इसलिए मिनट कॉलम में यह बराबर है 0,20,40

तो दोपहर में हर सोमवार को 5:30 बजे कमांड चलाने के लिए:

30 17 * * 1 /path/to/command

या हर 15 मिनट

*/15 * * * * /path/to/command

ध्यान दें कि सप्ताह का दिन 0-6 से 0 है जहां 0 रविवार है।

आप और पढ़ सकते हैं यहाँ


600
2017-08-16 08:58



ये सिस्टम-व्यापी हैं और उच्च विशेषाधिकारों के साथ चलते हैं। जब तक पहुंच या अनुमति की कोई दिक्कत नहीं होती है तब तक मैं वहां कुछ भी नहीं डालूंगा। अंगूठे के नियम के रूप में, क्षमताओं के बिना सामान करने की कोशिश करें। इसलिए, मुझे यह जवाब बेहतर पसंद है: ubuntu.stackexchange.com/questions/2368/how-do-i-setup-cron-job/... - H Marcelo Morales
@ मार्सेलो मोरालेस, जो दिए गए आदेशों को रूट के रूप में भी चलाएंगे! यदि आप दूसरी तरफ सूडो का उपयोग नहीं करते हैं तो आप एक उपयोगकर्ता क्रोंटैब बनाएंगे और यह उपयोगकर्ता द्वारा बनाए गए उपयोगकर्ता के रूप में चलाया जाएगा! - LassePoulsen
* / 15 * * * * / पथ / से / कमांड मेरे लिए बहुत आसान था! धन्यवाद! - Andrew Odendaal
यह ध्यान देने योग्य है कि इन परिवर्तनों को स्वचालित रूप से लागू किया जाता है, आपको किसी भी चीज़ को पुनरारंभ / पुनः लोड करने की आवश्यकता नहीं है। - Molomby
एक और आसान टिप है कि इसके बजाय */15 * * * * /path/to/command, तुम कर सकते हो @reboot /path/to/command स्टार्टअप पर कुछ निष्पादित करने के लिए। - Kenneth Worden


यदि आप जिस नौकरी को चलाने के लिए चाहते हैं उसे उसी विशेषाधिकार के साथ चलाया जा सकता है क्योंकि आपका उपयोगकर्ता मैं उपयोगकर्ता क्रॉन्टाब का उपयोग करने की अनुशंसा करता हूं जिसे आप चलकर संपादित कर सकते हैं EDITOR="gedit" crontab -e(जो इस्तेमाल किया जाएगा एडिट crontab फ़ाइल को संपादित करने के लिए) या बस crontab -e(जो डिफ़ॉल्ट संपादक का उपयोग करेगा) टर्मिनल में।

यदि आप हर 10 मिनट में कुछ चलाना चाहते हैं, उदाहरण के लिए, आप इस तरह की एक पंक्ति जोड़ते हैं

*/10 * * * * /usr/bin/somedirectory/somecommand

और फ़ाइल को बचाओ।

आप उपयोगकर्ता crontab के साथ सामग्री देख सकते हैं crontab -l

सिस्टम क्रोंटैब का उपयोग करने का सबसे लचीला तरीका है जिसे आप चलकर संपादित कर सकते हैं sudo crontab -e टर्मिनल में यह आपको रूट के रूप में अपने आदेशों को चलाने की अनुमति देगा (यदि आपको उस स्तर के विशेषाधिकार की आवश्यकता है) या सिस्टम पर किसी अन्य उपयोगकर्ता को।

फिर यदि आप हर 10 मिनट में कुछ चलाना चाहते हैं जड़उदाहरण के लिए, आप इस तरह एक लाइन जोड़ते हैं

*/10 * * * * root /usr/bin/somedirectory/somecommand

और फ़ाइल को बचाओ।(लाइन के लिए उपयोगकर्ता के अतिरिक्त ध्यान दें)

आप सिस्टम crontab फ़ाइल की सामग्री को देख सकते हैं sudo crontab -l

अधिक जानकारी: https://help.ubuntu.com/community/CronHowto


93
2017-08-16 09:21



यहां एक मीठा इंटरैक्टिव क्रॉन मैनिपुलेटर है जो आपको क्रॉन समय के लिए अंग्रेजी देगा crontab.guru - CTS_AE


यदि आप जीयूआई का उपयोग करके इसे करना पसंद करते हैं, तो आप सॉफ्टवेयर सेंटर पर जा सकते हैं और इंस्टॉल कर सकते हैं निर्धारित कार्य (या भागो sudo apt-get install gnome-schedule)। यह क्रॉन कार्यों को जोड़ने के लिए एक शक्तिशाली जीयूआई प्रदान करेगा।

ध्यान दें कि यदि आप इस विधि का उपयोग करते हैं, तो डिफ़ॉल्ट रूप से कार्य को आपके उपयोगकर्ता के रूप में निष्पादित किया जाएगा, न कि रूट के रूप में। यह आमतौर पर एक अच्छी बात है।


51
2018-01-31 23:59



स्पष्ट रूप से 16.04 के लिए उपलब्ध नहीं है bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060 - TankorSmash
@ टैंकोरस्मैश आप इसे प्राप्त कर सकते हैं यहाँ - M. Becerra
पैकेज आवश्यकताओं को 16.04 को पूरा नहीं किया जा सकता है - Odysseus Ithaca


मेरा सुझाव है केडीई कार्य शेड्यूलर (kde-config-cron)  Install kde-config-cron। इसे से एक्सेस करें प्रणाली व्यवस्था में कार्य अनुसूचक मॉड्यूल वहाँ।

यह व्यक्तिगत और सिस्टम क्रोंटैब्स दोनों का प्रबंधन करता है, और समय सीमाओं को बनाने में आसानी ने मुझे आश्चर्यचकित किया (नीचे स्क्रीनशॉट देखें)। मुझे लगता है कि यह हिस्सा वास्तव में अंतर्निहित है।

enter image description here


24
2018-02-11 14:35





केडीई कार्य शेड्यूलर नियमित उबंटू में काम नहीं करेगा। यह केवल KUbuntu जैसे केडीई सिस्टम में काम करता है। गैर केडीई सिस्टम के लिए आप gnome-schedule का उपयोग करना पसंद करेंगे

$ sudo apt-get install gnome-schedule

ऐप डैश में अनुसूचित कार्य है।


11
2017-09-27 20:25



यह उबंटू 16.04 के लिए नहीं मिला है - SaidbakR
PLease पर एक नज़र डालें I can't install gnome schedule on Ubuntu 16.04 @ askubuntu.com/questions/785657/...। डाउनलोड करने के लिए एक पैकेज है @ bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060/...। बस प्रदर्शन करें $ sudo dpkg -i gnome-schedule_2.3.0-0ubuntu16.04_amd64.deb - Antonio


मैं एक बैश स्क्रिप्ट के माध्यम से चलाने के लिए क्रॉन नौकरी सेट करना चाहता था, इसलिए स्क्रिप्ट को निष्पादित करने से क्रॉन नौकरी मिल जाएगी।

मुझे एहसास हुआ कि जब आप इसका उपयोग करते हैं:

crontab -e 

फिर यह फ़ाइल बनाता है:

/var/spool/cron/crontabs/root 

जहां रूट crontab कमांड चलाने वाले उपयोगकर्ता का नाम है। तो इस पर आधारित और कम से कम 14.04 में, हम एक नया क्रॉन नौकरी बनाने के लिए निम्न बैश आदेश निष्पादित कर सकते हैं:

echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root

हमें फ़ाइल के लिए सही स्वामित्व सेट करने की भी आवश्यकता है:

chown root:root /var/spool/cron/crontabs/root

और सही अनुमतियां सेट करें:

chmod 600 /var/spool/cron/crontabs/root

यदि आप दौड़ते हैं crontab -e सूची में पहले से ही क्रॉन नौकरियां हैं, फिर आप निम्न आदेश का उपयोग कर सूची में शामिल हो सकते हैं:

echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root

8