दस्तावेज़

त्वरित शुरुआत + हर हिस्से और हर डिवाइस की सुविधाओं का विवरण (लगातार अपडेट हो रहा है)

शेड्यूल कार्य (Cron)

यह लेख बताता है कि लक्ष्य सर्वर पर शेड्यूल किए गए कार्य कैसे प्रबंधित करें।

पहले जानें: Cron क्या है

Cron Linux का बिल्ट-इन “शेड्यूलिंग” टूल है। आप इसे कह सकते हैं “हर दिन रात 3 बजे डेटाबेस का बैकअप ले लो”, “हर घंटे लॉग साफ़ कर दो”, “हर सोमवार कोई सेवा रीस्टार्ट कर दो” — समय आने पर अपने आप चलेगा, किसी को देखने की ज़रूरत नहीं।

सुविधा परिचय

लक्ष्य सर्वर पर मौजूद Cron शेड्यूल कार्यों को देखना, जोड़ना और हटाना।

कब उपयोगी है

  • नियमित रूप से डेटाबेस बैकअप, लॉग सफ़ाई
  • नियमित रूप से मॉनिटरिंग स्क्रिप्ट चलाना
  • नियमित रूप से सेवा रीस्टार्ट, सर्टिफ़िकेट अपडेट

इस्तेमाल कैसे करें

किसी सर्वर के “सिस्टम प्रबंधन पैनल → शेड्यूल कार्य” में जाएँ और उस सर्वर के सभी मौजूदा Cron कार्य देखें।

कार्य जोड़ना

Cron एक्सप्रेशन और चलाने वाला कमांड भरें:

फ़ील्डविवरण
समय एक्सप्रेशन5 खंडों वाला, जैसे 0 3 * * * (हर दिन रात 3 बजे)
कमांडचलाने वाला shell कमांड

Cron एक्सप्रेशन का प्रारूप (मिनट घंटा दिन महीना सप्ताह):

* * * * *  command
│ │ │ │ │
│ │ │ │ └── सप्ताह का दिन (0-7, 0/7=रविवार)
│ │ │ └──── महीना (1-12)
│ │ └────── तारीख़ (1-31)
│ └──────── घंटा (0-23)
└────────── मिनट (0-59)

आम उदाहरण:

एक्सप्रेशनअर्थ
*/5 * * * *हर 5 मिनट
0 * * * *हर घंटे
0 3 * * *हर दिन रात 3 बजे
0 3 * * 1हर सोमवार रात 3 बजे
0 3 1 * *हर महीने की 1 तारीख़ रात 3 बजे
0 3 * * 0हर रविवार रात 3 बजे
30 2 * * *हर दिन रात 2 बजकर 30 मिनट

काम के कमांड के उदाहरण:

# हर दिन रात 3 बजे डेटाबेस का बैकअप (उदाहरण)
0 3 * * * docker exec sshe-mysql mariadb-dump -uroot -p'<password>' <db-name> > /opt/backup/db-$(date +\%F).sql

# हर 6 घंटे में अस्थायी फ़ाइलें साफ़ करें
0 */6 * * * find /tmp -type f -mtime +7 -delete

# हर सोमवार रात 4 बजे कोई सेवा रीस्टार्ट करें
0 4 * * 1 systemctl restart my-app

सावधानियाँ

1. Cron कार्य लक्ष्य सर्वर के मौजूदा उपयोगकर्ता के रूप में चलते हैं, इसलिए यह पक्का करें कि उस उपयोगकर्ता के पास कमांड चलाने की अनुमति हो।

2. कमांड में पूरा पथ (absolute path) लिखने की सलाह दी जाती है (Cron के एनवायरनमेंट वेरिएबल कम होते हैं, रिलेटिव पथ से प्रोग्राम न मिल सके)।

3. कमांड में % इस्तेमाल हो तो उसे \% करें (Cron % को विशेष अक्षर मानता है)।

4. Cron कार्य हटाने के बाद तुरंत प्रभावी हो जाता है।

5. सिस्टम-स्तर के Cron (/etc/crontab) बदलने के लिए पैनल के बाहर काम करना पड़ सकता है; पैनल डिफ़ॉल्ट रूप से मौजूदा उपयोगकर्ता के crontab -l को प्रबंधित करता है।