পাঁচটি ঘর
একটি ক্রন এক্সপ্রেশন হলো ফাঁক দিয়ে আলাদা করা পাঁচটি ঘর, যা একটি সময়সূচি-যন্ত্রকে বলে দেয় একটি কাজ কখন চালাতে হবে:
বাঁ থেকে ডানে, ক্রম অনুসারে:
| মিনিট | 0-59 |
| ঘণ্টা | 0-23 |
| মাসের দিন | 1-31 |
| মাস | 1-12 |
| সপ্তাহের বার | 0-6 (রবিবার = 0) |
এখনকার সময় প্রতিটি ঘরের সঙ্গে মিলে গেলেই কাজটি চলে।
বিশেষ অক্ষর
*যেকোনো মান।,একটি তালিকা:1,15মানে 1 আর 15 তারিখ।-একটি পরিসর: শেষ ঘরে1-5মানে সোম থেকে শুক্র।/একটি ধাপ: মিনিটের ঘরে*/10মানে প্রতি 10 মিনিটে।
চেনা সময়সূচি
*/5 * * * * | প্রতি 5 মিনিটে |
0 * * * * | প্রতি ঘণ্টায়, ঘণ্টার মাথায় |
0 0 * * * | রোজ মধ্যরাতে |
30 8 * * 1-5 | কর্মদিবসে 08:30-এ |
0 0 1 * * | প্রতি মাসের 1 তারিখ মধ্যরাতে |
0 3 * * 0 | প্রতি রবিবার 03:00-এ |
যেকোনো এক্সপ্রেশন ক্রন এক্সপ্রেশন বুঝুন-এ সেঁটে দিলে তা সহজ কথায় পড়া যায় আর পরের চলার সময়গুলোও দেখা যায়।
যেসব জায়গায় মানুষ ঠোক্কর খান
- সময় অঞ্চল: ক্রন সার্ভারের ঘড়ি ব্যবহার করে, যা প্রায়ই UTC।
- মাসের দিন আর সপ্তাহের বার একসঙ্গে: দুটিই বসানো থাকলে কাজটি চলে যেকোনো একটি মিললেই, দুটিই মিললে নয়।
- সেকেন্ড: আদর্শ ক্রনে সেকেন্ডের কোনো ঘরই নেই। কিছু ব্যবস্থা, যেমন Quartz আর Spring, গোড়ায় একটি জুড়ে দেয়, আর তাতে ছয়টি ঘর হয়।
যে এক্সপ্রেশন দেখতে যা মনে হয় তা করে না
| এক্সপ্রেশন | যা ভাবা হয়েছিল | সত্যিই যা চলে |
|---|---|---|
0 9 1-7 * 1 | প্রথম সোমবারে 09:00 | 1 থেকে 7 দিনের প্রত্যেকটিতে 09:00, আর প্রতিটি সোমবারেই |
*/15 9-17 * * 1-5 | প্রতি 15 মিনিটে, 9 থেকে 5 | কর্মদিবসে 09:00 থেকে 17:45, 17:00 ঘণ্টাটি ধরেই |
0 0 31 * * | মাসের শেষ দিন | কেবল 31 দিনের সাতটি মাসেই |
0 0 29 2 * | বছরে একবার | কেবল অধিবর্ষেই |
প্রথম সোমবারের জন্য 1 থেকে 7 দিনে চালান আর স্ক্রিপ্টের ভেতরেই বারটি দেখে নিন।
সংক্ষিপ্ত পথ
ক্রনের অনেক রূপই ডাকনাম নেয়: @hourly, @daily, @weekly, @monthly, @yearly, আর @reboot, যা কলটি চালু হলে একবার চলে।
দিবালোক সংরক্ষণের সময়
যে সার্ভার স্থানীয় সময় মেনে চলে তাতে 01:00 আর 03:00-র মাঝে বসানো একটি কাজ ঘড়ি এগিয়ে যাওয়ার রাতে ছেড়ে দেওয়া হতে পারে কিংবা পিছিয়ে যাওয়ার সময় দুবার চলতে পারে, আর তা ক্রনের রূপের ওপরে নির্ভর করে। দরকারি কাজ ওই ঘণ্টাগুলোর বাইরে বসান, কিংবা সার্ভারটি UTC-তে চালান।