Cron job को समय र चलाउने आदेश फरक कुरा हुन्
Linux मा cron ले तोकिएको समयमा आदेश चलाउँछ। प्रयोगकर्ताको crontab मा सुरुका पाँच फिल्डले समय जनाउँछन् र त्यसपछि चलाउने command आउँछ। Cron expression बनाउँदैमा सर्भरमा काम दर्ता हुँदैन।
डेटाबेसको backup, पुराना log हटाउने काम वा नियमित data sync का लागि पहिले चाहिएको तालिका तय गर्नुहोस्। त्यसपछि आगामी मिति हेर्दा दिन र बार झुक्किएको छ कि छैन भन्ने थाहा हुन्छ। यो उपकरणले समय गणना गर्छ; तपाईंको सर्भरको script चलाउँदैन।
आफ्नो तालिका कसरी बनाउने?
- नमुना तालिका छान्नुहोस् र चाहिएका फिल्ड परिवर्तन गर्नुहोस्।
- धेरै मानका लागि सूची र लगातार मानका लागि दायरा प्रयोग गर्नुहोस्।
- पहिल्यै भएको expression जाँच्दा command नराखी पाँच समय फिल्डमात्र टाँस्नुहोस्।
- UTC मा देखिएको समयलाई सर्भरको समय क्षेत्रसँग मिलाएर expression कपी गर्नुहोस्।
पाँच फिल्डको क्रम र cron syntax
क्रमशः मिनेट, घण्टा, महिनाको दिन, महिना र हप्ताको दिन लेखिन्छ; बीचमा space हुन्छ। आइतबार 0 वा 7 हो। Expression मा 0–9 अंक र JAN–DEC, SUN–SAT नाम प्रयोग गर्नुहोस्। पूर्वावलोकनका मिति इस्वी संवत्का हुन्, विक्रम संवत्का होइनन्।
| फिल्ड | मान |
|---|---|
| मिनेट | 0–59 |
| घण्टा | 0–23 |
| महिनाको दिन | 1–31 |
| महिना | 1–12 |
| हप्ताको दिन | 0–7 |
- * : फिल्डका सबै मान।
- , : छुट्टाछुट्टै मानको सूची, जस्तै 0,30।
- - : दुवै छेउ समेटिएको दायरा, जस्तै 1-5।
- / : फिल्डभित्रको चरण, जस्तै
*/15।
हरेक पाँच मिनेट, दैनिक र साप्ताहिक उदाहरण
तलको समय सर्भरको scheduler ले प्रयोग गर्ने समय क्षेत्रअनुसार बुझिन्छ। कुनै बारको दायराले सार्वजनिक बिदा स्वतः छुट्याउँदैन; आवश्यक भए script मा छुट्टै जाँच राख्नुपर्छ।
| Expression | चल्ने तालिका |
|---|---|
*/5 * * * * | हरेक पाँच मिनेट |
30 2 * * * | हरेक दिन 02:30 मा |
0 9 * * 0-4 | आइतबारदेखि बिहीबार 09:00 मा |
0 0 * * 0 | हरेक आइतबार मध्यरातमा |
0 0 1 * * | हरेक महिनाको पहिलो दिन |
0 0 29 2 * | अधिवर्षमा फेब्रुअरी २९ मा |
Linux सर्भरमा crontab सेट गर्ने
हालको प्रयोगकर्ताका काम सम्पादन गर्न crontab -e चलाउनुहोस्। तलको उदाहरणले cron को समय क्षेत्रअनुसार हरेक दिन 02:30 मा backup script चलाउँछ।
पूरा path लेख्नुहोस् र script चलाउने अनुमति जाँच गर्नुहोस्। Cron सेवा पनि चलिरहेको हुनुपर्छ। यहाँ मिति सही देखिनु भनेको सर्भरमा backup सफल भएको प्रमाण होइन।
30 2 * * * /usr/local/bin/backup.shCron सेट गर्दा उठ्ने प्रश्नहरू
समय नेपाली समयमै देखिन्छ?
होइन, पूर्वावलोकन UTC मा हुन्छ। Cron expression भित्र समय क्षेत्र हुँदैन; scheduler ले तय गर्छ। नेपालअनुसार काम चलाउन सर्भरको समय क्षेत्र जाँच गर्नुहोस्, भाषाका आधारमा समय परिवर्तन हुँदैन।
नेपाली अंक वा विक्रम संवत् प्रयोग गर्न मिल्छ?
Expression मा 0–9 अंक र सामान्य cron चिह्न प्रयोग गर्नुपर्छ। दिन र महिना इस्वी पात्रोअनुसार हुन्छन्। यो उपकरणले विक्रम संवत्को मिति वा स्थानीय बिदा रूपान्तरण गर्दैन।
दिन र बार दुवै राख्दा के हुन्छ?
दुवै सीमित भए कुनै एक मिले काम चल्छ। 0 9 1 * MON ले महिनाको पहिलो दिन वा सोमबार 09:00 जनाउँछ। कुनै फिल्ड * बाट सुरु भए दिनका दुवै सर्त मिल्नुपर्छ।
सेकेन्ड वा Quartz expression राख्न मिल्छ?
यहाँ Linux को पाँच फिल्डको ढाँचामात्र मिल्छ। सेकेन्ड, ?, L, W, # र @reboot मिल्दैनन्। @hourly, @daily, @weekly, @monthly र @yearly लाई पाँच फिल्डमा बदल्न सकिन्छ।
आगामी पाँच समय किन देखिएनन्?
खोज आगामी आठ वर्षसम्म सीमित छ। फेब्रुअरी ३१ जस्तो मिति हुँदैन; फेब्रुअरी २९ थोरैपटक मात्रै पर्न सक्छ। मिनेटमा */5 ले प्रत्येक घण्टाको 0, 5, 10 आदि जनाउँछ, save गरेको पाँच मिनेटपछि होइन।
