توضیحدهندهٔ عبارت Cron
هر عبارت cron را به زبان ساده و فیلد به فیلد بخوانید و دقیقاً ببینید دفعهٔ بعد کی اجرا میشود.
توضیحدهندهٔ عبارت Cron — خط crontab شما واقعاً چه میگوید
یک عبارت cron را بچسبانید و آن را به شکل یک جملهٔ ساده بخوانید، هر یک از پنج فیلد را جداگانه ببینید و زمان اجراهای بعدی را در منطقه زمانی خودتان یا در UTC بررسی کنید. این ابزار اشتباههایی را میگیرد که باعث میشوند کاری در زمان نادرست اجرا شود: مقداری خارج از بازه، عبارتی ششفیلدی که از Quartz کپی شده، یا زمانبندیای که هرگز رخ نمیدهد، مثل ۳۱ فوریه.
Cron زمانبند پشت crontabهای لینوکس و macOS است و نحو آن در CronJobهای Kubernetes، GitHub Actions، GitLab CI و بیشتر زمانبندهای ابری هم به کار میرود. این نحو فشرده است و بهراحتی اشتباه خوانده میشود؛ یک بررسی سریع اینجا جلوی کاری را میگیرد که بهجای روزی یک بار، هر دقیقه اجرا میشود.
روش استفاده
- یک عبارت cron را تایپ کنید یا بچسبانید، یا یکی را از زمانبندیهای رایج انتخاب کنید.
- توضیح و پنج فیلد زیر آن را بخوانید.
- فهرست اجراهای بعدی را بررسی کنید؛ منطقه زمانی را میان همین دستگاه و UTC جابهجا کنید.
- اگر دور فیلدی قرمز شد، پیام بالای آن میگوید چه چیزی اشتباه است.
پنج فیلد
| فیلد | مقادیر مجاز | مثال | معنا |
|---|---|---|---|
| دقیقه | 0–59 | 30 | در دقیقهٔ ۳۰ |
| ساعت | 0–23 | 9-17 | از 09:00 تا 17:59 |
| روز ماه | 1–31 | 1,15 | روز اول و پانزدهم |
| ماه | 1–12 یا JAN–DEC | */3 | ژانویه، آوریل، ژوئیه، اکتبر |
| روز هفته | 0–6 یا SUN–SAT (7 = یکشنبه) | 1-5 | دوشنبه تا جمعه |
نویسههای ویژه
*یعنی همهٔ مقادیر فیلد.,فهرست را جدا میکند:1,15,30.-بازه میسازد:9-17./گام تعیین میکند:*/15یعنی هر پانزدهمین مقدار از کمترین، و5/15هر پانزدهمین مقدار از ۵.- ماکروها جای کل خط را میگیرند:
@hourly،@daily،@weekly،@monthly،@yearly.
دام روز ماه و روز هفته
وقتی هر دو فیلد روز محدود شده باشند، cron استاندارد کار را در روزهایی اجرا میکند که با یکی از آن دو مطابقت دارند، نه با هر دو. 0 0 1 * 1 نیمهشبِ روز اول هر ماه و همچنین هر دوشنبه اجرا میشود. معمولاً انتظار میرود معنایش «دوشنبههایی که روز اول ماهاند» باشد، که cron ساده نمیتواند بیانش کند. ابزار هر بار که هر دو فیلد تعیین شده باشند یادداشتی نشان میدهد، و فهرست اجراهای بعدی رفتار واقعی را آشکار میکند.
منطقههای زمانی
Cron از منطقه زمانی ماشین یا سرویسی استفاده میکند که آن را اجرا میکند. سرورها و زمانبندهای ابری مثل GitHub Actions معمولاً روی UTC کار میکنند، پس کاری که برای 09:00 نوشته شده ممکن است ساعت 09:00 به وقت UTC اجرا شود، که در بیشتر جاها ساعت دیگری است، و وقتی ساعت تابستانی در محل شما شروع یا تمام میشود یک ساعت جابهجا میشود. پیش از استقرار، اجراهای بعدی را در همین دستگاه و UTC مقایسه کنید تا تفاوت را ببینید.
آنچه این ابزار پشتیبانی نمیکند
- ثانیه: عبارتهای شش و هفت فیلدی Quartz و Spring بهجای اینکه اشتباه خوانده شوند، گزارش میشوند.
- افزونههای غیراستانداردی مثل
L،Wو#که برخی زمانبندها اضافه میکنند. @rebootکه یک بار هنگام راهاندازی اجرا میشود و زمان بعدی ندارد.
ابزارهای مرتبط
برای تبدیل زمان یک اجرا به تایماستمپ یونیکس یا برعکس، از مبدل تایماستمپ استفاده کنید. صفحههای کاربردی این ابزار را با یک زمانبندی رایج باز میکنند: هر ۵ دقیقه، هر ساعت و هر روز نیمهشب.