一键重装系统工具 | U盘启动盘制作工具 | 误删文件恢复软件 | 硬盘数据抢救专家 | 电脑蓝屏修复助手 | C盘空间清理神器 | 电脑驱动离线安装工具 | 微信聊天记录恢复工具 | 照片误格式化恢复 | 电脑密码破解清除工具 | 系统崩溃紧急救援盘 | 电脑加速优化大师 | 电脑开不了机怎么重装系统 | 回收站清空了怎么恢复 | 硬盘分区丢失数据恢复 | 电脑卡顿重装系统有用吗 | U盘插入提示格式化数据恢复 | 电脑中毒文件被隐藏恢复 | 忘记电脑开机密码怎么办 | 新硬盘分区对齐工具 | 旧电脑装Win10流畅工具 | SD卡照片删除恢复免费版 | 移动硬盘打不开提示损坏修复 | 电脑无故重启系统修复工具 | 电脑小白一键重装神器 | 程序员电脑环境配置助手 | 设计师电脑字体/素材恢复工具 | 网吧网管系统维护工具箱 | 财务人员电脑发票备份恢复 | 学生党免费电脑系统安装包 | 电脑维修师傅必备工具盘 | 游戏玩家电脑性能优化助手 | 办公白领误删文档恢复软件 | 自媒体视频素材恢复工具 | 网课录制视频损坏修复工具 | 最好的U盘PE系统排名 | 数据恢复软件哪个最强 | 免费电脑助手与收费版区别 | 国产装机工具哪款无广告 | 离线版驱动助手推荐 | 轻量级电脑优化工具对比 | 支持NVMe驱动的PE工具 | 带网络功能的应急启动盘 | 2026最新版万能装机工具 | 支持Win11 24H2的PE工具 | 最新免激活系统重装工具 | 2026数据恢复软件破解版合集 | 纯净无捆绑装机助手V3.0 | 支持苹果M芯片的电脑助手 | 秋季更新版系统维护工具箱 | 电脑系统崩了怎么用U盘把重要资料拷贝出来 | 重装系统前哪些文件夹必须备份 | 固态硬盘误格式化还能恢复数据吗 | 如何制作一个既带PE又能存数据的双分区U盘 | 电脑总是弹窗广告用什么助手彻底拦截 后台管理
📢 欢迎访问系统之家!所有资源均经过安全检测。

Cron Cheatsheet: Syntax, Examples & Dialects

发布时间:2026-09-17 | 浏览:1
📥 下载地址(文章开头)
装机神器,一键装机,安装任何系统。纯净版,原版,软件版,精简版,英文版。
208 of 208 rows Press slash to focus. Press Escape to clear. j/k select · Enter open · Space preview · c copy · f pin · Esc clear Showing 208 of 208 cheatsheet rows Quick reference Choose your scheduler and confirm its timezone and dialect before copying an expression. 3 Day of month 1-31 4 Month 1-12 or JAN-DEC 5 Day of week 0-6 or names; dialects vary Standard cron has five fields. Extended dialects may add seconds before them and a year after them. 0-59 · optional · extended syntax only. 0-59 · required · standard field. 0-23 · required · standard field. 1-31 · required · standard field. 1-12 or JAN-DEC · required · standard field. JAN-DEC names are common, but Vercel accepts numeric months only. 0-6 or names; some dialects use 0-7 or 1-7 — see Dialects · required · standard field. Exact weekday ranges and Sunday numbering are listed in Dialects. Dialect-specific; not present in standard cron · Quartz optional; AWS required; other listed dialects omit it · extended syntax only. Quartz optionally accepts 1970-2099; AWS requires 1970-2199. The other listed dialects have no year field. 0-59 · optional · extended syntax only. 0-59 · required · standard field. 0-23 · required · standard field. 1-31 · required · standard field. 1-12 or JAN-DEC · required · standard field. JAN-DEC names are common, but Vercel accepts numeric months only. 0-6 or names; some dialects use 0-7 or 1-7 — see Dialects · required · standard field. Exact weekday ranges and Sunday numbering are listed in Dialects. Dialect-specific; not present in standard cron · Quartz optional; AWS required; other listed dialects omit it · extended syntax only. Quartz optionally accepts 1970-2099; AWS requires 1970-2199. The other listed dialects have no year field. Core operators combine values; advanced operators are dialect-specific and must not be assumed portable. Matches every allowed value in its field. Matches any value in a comma-separated list. Matches every value in an inclusive range. Selects every Nth value within a wildcard or range. Steps start at the field boundary: 0 for minutes/hours and 1 for day-of-month/month. Thus */2 in day-of-month selects odd dates, not a continuous 48-hour interval. In day-of-month, L means the last calendar day. In day-of-week, its form and numbering are dialect-specific. Quartz warns against combining L with lists or ranges. L-n support varies; use the target scheduler's documented form. quartz · aws · node-cron · spring · laravel · cloudflare Selects the nearest weekday to one day of the month; valid forms use a single day such as 15W or LW. W does not cross a month boundary. quartz · aws · node-cron · spring · laravel · cloudflare Selects occurrence 1-5 of one weekday in a month; a month without that occurrence is skipped. AWS allows only one # expression in day-of-week. Example forms: Quartz 0 0 9 ? * MON#2; AWS cron(0 9 ? * MON#2 *). quartz · aws · node-cron · spring · laravel · cloudflare Quartz and AWS use ? to leave one day field unspecified; Kubernetes, node-cron, robfig and Spring accept it as an alias for *. quartz · aws · kubernetes · node-cron · robfig · spring Jenkins derives stable values from the job name to spread jobs across time; renaming the job can move its schedule. Day-of-month hashing is limited to 1-28. H/3 does not create a continuous three-day cadence and can leave a longer gap at month end. * — every value Matches every allowed value in its field. Matches any value in a comma-separated list. Matches every value in an inclusive range. Selects every Nth value within a wildcard or range. Steps start at the field boundary: 0 for minutes/hours and 1 for day-of-month/month. Thus */2 in day-of-month selects odd dates, not a continuous 48-hour interval. In day-of-month, L means the last calendar day. In day-of-week, its form and numbering are dialect-specific. Quartz warns against combining L with lists or ranges. L-n support varies; use the target scheduler's documented form. quartz aws node-cron spring laravel cloudflare W — nearest weekday Selects the nearest weekday to one day of the month; valid forms use a single day such as 15W or LW. W does not cross a month boundary. quartz aws node-cron spring laravel cloudflare # — nth weekday Selects occurrence 1-5 of one weekday in a month; a month without that occurrence is skipped. AWS allows only one # expression in day-of-week. Example forms: Quartz 0 0 9 ? * MON#2; AWS cron(0 9 ? * MON#2 *). quartz aws node-cron spring laravel cloudflare ? — no specific value Quartz and AWS use ? to leave one day field unspecified; Kubernetes, node-cron, robfig and Spring accept it as an alias for *. quartz aws kubernetes node-cron robfig spring H — stable hash Jenkins derives stable values from the job name to spread jobs across time; renaming the job can move its schedule. Day-of-month hashing is limited to 1-28. H/3 does not create a continuous three-day cadence and can leave a longer gap at month end. Special strings Aliases are convenient but less portable than five-field expressions. “Unix” is not one dialect: Vixie-derived implementations such as Cronie can add their own behavior. Once a year at midnight on 1 January. Jenkins hashes calendar aliases instead of expanding them to fixed times. vixie · kubernetes · jenkins · node-cron · robfig · spring An alias for @yearly. Jenkins hashes calendar aliases instead of expanding them to fixed times. vixie · kubernetes · jenkins · node-cron · robfig · spring Once a month at midnight on day 1. Jenkins hashes calendar aliases instead of expanding them to fixed times. vixie · kubernetes · jenkins · node-cron · robfig · spring Once a week at midnight on Sunday. Jenkins hashes calendar aliases instead of expanding them to fixed times. vixie · kubernetes · jenkins · node-cron · robfig · spring Once a day at midnight. Jenkins hashes calendar aliases instead of expanding them to fixed times. vixie · kubernetes · jenkins · node-cron · robfig · spring An alias for @daily. Vixie documents @midnight. Cronie's current crontab(5) omits it, so Cronie support is unverified (https://github.com/cronie-crond/cronie/blob/master/man/crontab.5). BusyBox accepts special times only when built with FEATURE_CROND_SPECIAL_TIMES (https://git.busybox.net/busybox/tree/miscutils/crond.c). vixie · kubernetes · jenkins · node-cron · robfig · spring Once an hour at minute zero. Jenkins hashes calendar aliases instead of expanding them to fixed times. vixie · kubernetes · jenkins · node-cron · robfig · spring Runs once at an implementation-specific scheduler startup event; it does not guarantee that other services are ready. BusyBox uses a reboot marker when special times are enabled. This is not a portable calendar schedule. robfig/cron duration syntax with a fixed delay between scheduled activations; a slow job can overlap a later activation. Once a year at midnight on 1 January. Jenkins hashes calendar aliases instead of expanding them to fixed times. vixie kubernetes jenkins node-cron robfig spring An alias for @yearly. Jenkins hashes calendar aliases instead of expanding them to fixed times. vixie kubernetes jenkins node-cron robfig spring Once a month at midnight on day 1. Jenkins hashes calendar aliases instead of expanding them to fixed times. vixie kubernetes jenkins node-cron robfig spring Once a week at midnight on Sunday. Jenkins hashes calendar aliases instead of expanding them to fixed times. vixie kubernetes jenkins node-cron robfig spring Once a day at midnight. Jenkins hashes calendar aliases instead of expanding them to fixed times. vixie kubernetes jenkins node-cron robfig spring An alias for @daily. Vixie documents @midnight. Cronie's current crontab(5) omits it, so Cronie support is unverified (https://github.com/cronie-crond/cronie/blob/master/man/crontab.5). BusyBox accepts special times only when built with FEATURE_CROND_SPECIAL_TIMES (https://git.busybox.net/busybox/tree/miscutils/crond.c). vixie kubernetes jenkins node-cron robfig spring Once an hour at minute zero. Jenkins hashes calendar aliases instead of expanding them to fixed times. vixie kubernetes jenkins node-cron robfig spring Runs once at an implementation-specific scheduler startup event; it does not guarantee that other services are ready. BusyBox uses a reboot marker when special times are enabled. This is not a portable calendar schedule. robfig/cron duration syntax with a fixed delay between scheduled activations; a slow job can overlap a later activation. Field order and special operators vary. Check the scheduler's own documentation before moving an expression. 5 fields · 1 minute 6, optional year fields · 1 second 6, including year fields · 1 minute 6, including year fields · 1 minute 5 fields · 1 minute on Pro; once daily on Hobby 5 fields · 5 minutes 5 fields · 1 minute 5 fields · 1 minute 5 or 6 fields · 1 second with seconds field 5 by default fields · 1 second with seconds parser 5 or 6 fields · 1 second with seconds field 6 fields · 1 second 5 through ->cron() fields · 1 minute 5 fields · 1 minute Supported Unsupported Unverified in the linked official docs Unix / Vixie cron Quartz CronTrigger AWS EventBridge Scheduled Rules AWS EventBridge Scheduler Vercel Cron Jobs GitHub Actions schedule Kubernetes CronJob Jenkins Pipeline cron Spring @Scheduled Laravel scheduler Cloudflare Workers Cron Triggers Day-of-month and day-of-week are the least portable fields. Treat their interaction as part of the dialect. When both day fields are restricted, Vixie cron runs on every Monday and on every first day of a month. Put ? in one day field when the other day field defines the schedule. EventBridge uses minute-first syntax with a required year field and cron(...) wrapper. L selects the final calendar day in dialects that implement it. A weekday followed by L selects its last occurrence in the month. Prefer FRIL. Numeric forms are dialect-specific: Quartz/AWS/Cloudflare use 6L for Friday, while Spring uses 5L. 15W selects the weekday nearest day 15 without crossing a month boundary. LW selects the final Monday-to-Friday day of the month. MON#2 selects the second Monday of each month. A day that does not exist is skipped; day 31 runs only in months with 31 days. This fires only when 29 February exists. A day-of-month step restarts at 1 each month; it is not a continuous 48-hour cadence. February 28 to March 1 can be a one-day gap. MON#1 selects the first Monday of each month. In Vixie cron, OR semantics make this run every Monday and every day 1 through 7—not only the first Monday. This runs on days 1, 8, 15, 22 and 29, then resets at the next month. When both day fields are restricted, Vixie cron runs on every Monday and on every first day of a month. Quartz requires ? Put ? in one day field when the other day field defines the schedule. AWS requires ? and a wrapper EventBridge uses minute-first syntax with a required year field and cron(...) wrapper. Last day of the month L selects the final calendar day in dialects that implement it. A weekday followed by L selects its last occurrence in the month. Prefer FRIL. Numeric forms are dialect-specific: Quartz/AWS/Cloudflare use 6L for Friday, while Spring uses 5L. Nearest weekday 15W selects the weekday nearest day 15 without crossing a month boundary. LW selects the final Monday-to-Friday day of the month. MON#2 selects the second Monday of each month. A day that does not exist is skipped; day 31 runs only in months with 31 days. This fires only when 29 February exists. Day steps reset monthly A day-of-month step restarts at 1 each month; it is not a continuous 48-hour cadence. February 28 to March 1 can be a one-day gap. MON#1 selects the first Monday of each month. First-week range is not first Monday In Vixie cron, OR semantics make this run every Monday and every day 1 through 7—not only the first Monday. A seven-day step is not weekly This runs on days 1, 8, 15, 22 and 29, then resets at the next month. Timezones & DST A cron describes local clock fields. The scheduler decides which timezone supplies that clock. Daemon timezone · override: CRON_TZ for following entries; logs remain daemon-local. Spring gap: Nonexistent local times do not run. Fall repeat: Repeated local times run twice. UTC · override: Optional IANA timezone on the schedule. Spring gap: Advances a skipped time to the next valid local time. Fall repeat: Not explicitly documented (unverified). Runs can be delayed under load, especially at minute 0, and sufficiently delayed queued jobs can be dropped. UTC · override: None. Spring gap: No local DST transition in UTC. Fall repeat: No local DST transition in UTC. UTC · override: IANA timezone. Spring gap: Skips a nonexistent local time. Fall repeat: Runs once at a repeated local time. UTC · override: None. Spring gap: No local DST transition in UTC. Fall repeat: No local DST transition in UTC. UTC · override: None. Spring gap: No local DST transition in UTC. Fall repeat: No local DST transition in UTC. kube-controller-manager local timezone · override: .spec.timeZone with an IANA name. Spring gap: Implementation behavior is not documented (unverified). Fall repeat: Implementation behavior is not documented (unverified). Scheduler timezone · override: CronTrigger timezone. Spring gap: Misfire behavior depends on the trigger policy. Fall repeat: Exact duplicate-time behavior is unverified. Scheduler timezone · override: zone attribute. Spring gap: Exact behavior is not documented here (unverified). Fall repeat: Exact behavior is not documented here (unverified). System timezone · override: timezone option with an IANA name. Spring gap: Exact behavior is not documented here (unverified). Fall repeat: Exact behavior is not documented here (unverified). Machine local timezone · override: WithLocation or CRON_TZ= prefix. Spring gap: Jobs scheduled in a skipped local interval do not run. Fall repeat: Jobs scheduled in a repeated local interval run twice. Vixie cron / Cronie Daemon timezone · override: CRON_TZ for following entries; logs remain daemon-local. Spring gap: Nonexistent local times do not run. Fall repeat: Repeated local times run twice. UTC · override: Optional IANA timezone on the schedule. Spring gap: Advances a skipped time to the next valid local time. Fall repeat: Not explicitly documented (unverified). Runs can be delayed under load, especially at minute 0, and sufficiently delayed queued jobs can be dropped. EventBridge Scheduled Rules UTC · override: None. Spring gap: No local DST transition in UTC. Fall repeat: No local DST transition in UTC. EventBridge Scheduler UTC · override: IANA timezone. Spring gap: Skips a nonexistent local time. Fall repeat: Runs once at a repeated local time. Vercel Cron Jobs UTC · override: None. Spring gap: No local DST transition in UTC. Fall repeat: No local DST transition in UTC. Cloudflare Cron Triggers UTC · override: None. Spring gap: No local DST transition in UTC. Fall repeat: No local DST transition in UTC. Kubernetes CronJob kube-controller-manager local timezone · override: .spec.timeZone with an IANA name. Spring gap: Implementation behavior is not documented (unverified). Fall repeat: Implementation behavior is not documented (unverified). Quartz CronTrigger Scheduler timezone · override: CronTrigger timezone. Spring gap: Misfire behavior depends on the trigger policy. Fall repeat: Exact duplicate-time behavior is unverified. Spring @Scheduled Scheduler timezone · override: zone attribute. Spring gap: Exact behavior is not documented here (unverified). Fall repeat: Exact behavior is not documented here (unverified). System timezone · override: timezone option with an IANA name. Spring gap: Exact behavior is not documented here (unverified). Fall repeat: Exact behavior is not documented here (unverified). Machine local timezone · override: WithLocation or CRON_TZ= prefix. Spring gap: Jobs scheduled in a skipped local interval do not run. Fall repeat: Jobs scheduled in a repeated local interval run twice. Execution environment Cron starts a non-interactive command with a small, scheduler-defined environment. Traditional crond executes commands with /bin/sh unless SHELL is assigned in the crontab. Do not assume an interactive PATH; declare it or use absolute executable paths. HOME is set from the crontab owner's account unless the crontab assigns another value. Set the working directory explicitly instead of depending on where the scheduler starts the command. A cron command is not an interactive login shell, so shell profile files are not automatically a portable source of configuration. Set variables on their own crontab lines; variable expansion is not performed in assignment values. Assign SHELL when a command intentionally relies on Bash rather than portable /bin/sh syntax. Traditional crond executes commands with /bin/sh unless SHELL is assigned in the crontab. Do not assume an interactive PATH; declare it or use absolute executable paths. HOME is set from the crontab owner's account unless the crontab assigns another value. Working directory Set the working directory explicitly instead of depending on where the scheduler starts the command. No interactive startup files A cron command is not an interactive login shell, so shell profile files are not automatically a portable source of configuration. Crontab environment assignments Set variables on their own crontab lines; variable expansion is not performed in assignment values. Select Bash explicitly Assign SHELL when a command intentionally relies on Bash rather than portable /bin/sh syntax. Missed runs, retries and overlap Catch-up, concurrency, retries and jitter belong to the scheduler, not the cron expression. Calendar runs missed while the daemon is down are skipped; use flock to prevent overlapping command instances. Runs daily-or-slower jobs after downtime and can add a configured random delay. Persistent=true catches up a missed calendar activation; RandomizedDelaySec adds jitter. startingDeadlineSeconds bounds late starts; more than 100 missed schedules are not started. concurrencyPolicy chooses Allow, Forbid or Replace for Jobs created by one CronJob. CronTrigger misfire instructions choose what happens after a missed fire time. @DisallowConcurrentExecution prevents concurrent instances for the same JobKey. Delivery is best-effort; design handlers to be idempotent because events can be delivered more than once. A retry policy controls maximum event age and retry attempts; a flexible time window can add delivery jitter. H derives stable offsets from the job name to distribute scheduled load. A concurrency group can cancel or queue overlapping workflow or job runs. Scheduled workflows can be delayed under load, especially near the start of an hour, and queued jobs can be dropped. Job wrappers can SkipIfStillRunning or DelayIfStillRunning when a previous activation is active. Traditional cron Calendar runs missed while the daemon is down are skipped; use flock to prevent overlapping command instances. Runs daily-or-slower jobs after downtime and can add a configured random delay. Persistent=true catches up a missed calendar activation; RandomizedDelaySec adds jitter. Kubernetes CronJob startingDeadlineSeconds bounds late starts; more than 100 missed schedules are not started. concurrencyPolicy chooses Allow, Forbid or Replace for Jobs created by one CronJob. CronTrigger misfire instructions choose what happens after a missed fire time. @DisallowConcurrentExecution prevents concurrent instances for the same JobKey. Vercel Cron Jobs Delivery is best-effort; design handlers to be idempotent because events can be delivered more than once. EventBridge Scheduler A retry policy controls maximum event age and retry attempts; a flexible time window can add delivery jitter. H derives stable offsets from the job name to distribute scheduled load. A concurrency group can cancel or queue overlapping workflow or job runs. Scheduled workflows can be delayed under load, especially near the start of an hour, and queued jobs can be dropped. Job wrappers can SkipIfStillRunning or DelayIfStillRunning when a previous activation is active. Deployment formats and quoting The same schedule is embedded differently in crontabs, configuration files and scheduler APIs. Five schedule fields are followed directly by the command. System crontab and /etc/cron.d lines add a user field before the command. Quote the cron string in workflow YAML; scheduled workflows run from the default branch. Put the five-field string in spec.schedule and an IANA zone in spec.timeZone. Vercel stores a UTC five-field schedule in a crons entry. Cloudflare Cron Triggers are configured as UTC cron strings in Wrangler. AWS wraps a minute-first six-field expression, including year, in cron(...).
📥 下载地址(文章中间)
装机神器,一键装机,安装任何系统。纯净版,原版,软件版,精简版,英文版。
aws · aws-scheduler Quartz-style strings put required seconds first; Quartz may append a year. quartz · spring Five schedule fields are followed directly by the command. System crontab and /etc/cron.d lines add a user field before the command. GitHub Actions YAML Quote the cron string in workflow YAML; scheduled workflows run from the default branch. Kubernetes CronJob YAML Put the five-field string in spec.schedule and an IANA zone in spec.timeZone. Vercel stores a UTC five-field schedule in a crons entry. Cloudflare Cron Triggers are configured as UTC cron strings in Wrangler. AWS EventBridge expression AWS wraps a minute-first six-field expression, including year, in cron(...). aws aws-scheduler Quartz / Spring string Quartz-style strings put required seconds first; Quartz may append a year. systemd timers and other schedulers Choose a scheduler with native catch-up, interval or service-management semantics when cron is not enough. A systemd calendar expression for 09:00 every day. A systemd calendar expression for Monday through Friday. The monthly calendar shortcut fires on the first day. Configure catch-up, jitter and coalescing accuracy in the timer unit. Normalize a calendar expression and print its next elapse times before installing it. BusyBox crond is a smaller implementation; special-time aliases depend on the FEATURE_CROND_SPECIAL_TIMES build option. Use anacron for daily-or-slower jobs that should run after a machine was unavailable. A launchd agent or daemon can use StartCalendarInterval for calendar-based starts. schtasks creates and manages native Windows scheduled tasks. systemd daily at 09:00 A systemd calendar expression for 09:00 every day. systemd weekdays at 09:00 A systemd calendar expression for Monday through Friday. systemd monthly The monthly calendar shortcut fires on the first day. systemd timing controls Configure catch-up, jitter and coalescing accuracy in the timer unit. Preview systemd calendars Normalize a calendar expression and print its next elapse times before installing it. BusyBox / Alpine crond BusyBox crond is a smaller implementation; special-time aliases depend on the FEATURE_CROND_SPECIAL_TIMES build option. Use anacron for daily-or-slower jobs that should run after a machine was unavailable. A launchd agent or daemon can use StartCalendarInterval for calendar-based starts. Windows Task Scheduler schtasks creates and manages native Windows scheduled tasks. Copy a schedule, then check its timezone, dialect, overlap policy, and field-boundary behavior. Minutes & hours Every minute, every hour, every day Every 5 minutes Every 5 minutes, every hour, every day Every 10 minutes Every 10 minutes, every hour, every day Every 15 minutes Every 15 minutes, every hour, every day Every 30 minutes At 0 and 30 minutes past the hour, every hour, every day Every hour, every day Choose a fixed non-zero minute or Jenkins H when many jobs would start together. At 0 minutes past the hour, every 2 hours, every day At 0 minutes past the hour, every 6 hours, every day Quarter past every hour At 15 minutes past the hour, every hour, every day Every 15 minutes in office hours Every 15 minutes, between 09:00 and 17:59, Monday through Friday Every 90 minutes, part A At minute 0 every third hour Combine with part B for 00:00, 01:30, 03:00, 04:30, and so on. Every 90 minutes, part B At minute 30 every third hour starting at 01:30 Combine with part A; one five-field expression cannot express this cadence. Every 30 seconds At seconds 0 and 30 of every minute Daily & business hours Daily at midnight At 00:00, every day At 06:30, every day At 09:00, every day At 12:00, every day At 08:00 and 18:00, every day Three times a day At 06:00, 12:00 and 18:00, every day Hourly on weekdays Every hour, between 09:00 and 17:00, Monday through Friday Stagger at minute 17 At 17 minutes past the hour, every hour, every day Choose a fixed minute to avoid the top-of-hour herd. Weekdays at 09:00 and 17:00 At 09:00 and 17:00, Monday through Friday Weekdays excluding holidays Trigger on weekdays, then have the command consult the authoritative holiday calendar Holiday calendars are not expressible in a cron field. At 09:00, only on Monday At 17:00, only on Friday At 09:00, Monday through Friday At 09:00, only on Sunday and Saturday Monday, Wednesday, Friday At 09:00, only on Monday, Wednesday, and Friday Tuesday and Thursday At 09:00, only on Tuesday and Thursday At 09:00, only on Monday and Thursday Every other week wrapper At 09:00, only on Monday Gate the weekly trigger with (( ( $(date +%s) / 86400 - ANCHOR_DAYS ) % 14 == 0 )) || exit 0, using an explicit epoch-day anchor. ISO week parity breaks around week 53; an interval scheduler is another option. Monthly & yearly First day of each month At 00:00, on day 1 of the month Fifteenth of each month At 09:00, on day 15 of the month Last day of each month At 00:00, on the last day of the month Quartz-style six-field form; AWS uses cron(0 0 L * ? *). Nearest weekday to the 15th At 09:00, on the weekday nearest day 15 of the month Quartz-style six-field form; AWS uses cron(0 9 15W * ? *). At 09:00, on the second Monday of the month Quartz-style six-field form; AWS uses cron(0 9 ? * MON#2 *). At 00:00, on day 1 of the month, only in January, April, July, and October At 00:00, on day 1 of the month, only in January Yearly on 1 July At 00:00, on day 1 of the month, only in July Christmas morning At 09:00, on day 25 of the month, only in December Last weekday of each month At 09:00 on the last Monday-to-Friday day of each month Quartz-style six-field form; AWS uses cron(0 9 LW * ? *). First weekday of each month At 09:00 on the weekday nearest the first of each month 1W stays within the month. First Monday of each month At 09:00 on the first Monday of each month Last Friday of each month At 09:00 on the last Friday of each month Prefer FRIL. Numeric copies are 6L in Quartz/AWS/Cloudflare and 5L in Spring. Last day with a portable wrapper Run on days 28-31, then continue only when tomorrow is day 1 GNU date uses date -d tomorrow; BSD date uses date -v+1d. Escape % inside a crontab command. Penultimate day of each month At 09:00 one day before the last day of each month Three days before month end At 09:00 three days before the last day of each month One specific date and year At 09:00 on September 13, 2026 Quartz order is seconds first. AWS minute-first order is cron(0 9 13 9 ? 2026). Boundaries & pitfalls Every third month field-value At 00:00, on day 1 of the month, every 3 months This step-education form is anchored to January; use 1,4,7,10 when that phase is intentional. Hourly overnight Every hour, between 00:00 and 06:00, every day Hourly across midnight Every hour, at 00:00 through 05:00 and 22:00 through 23:00, every day Split a wrapped range into two ranges. At 09:00 on day 31; skipped in February, April, June, September and November Dates that do not exist in a month do not match. At 09:00 on February 29 in leap years only; 2100 is not a leap year Every second day-of-month value; resets each month On odd-numbered days of each month; boundary intervals vary (24 or 48 hours) The step resets when the month changes. Every 7 field-minutes At :00, :07, …, :56; there is a 4-minute gap at the hour The sequence resets at minute 0; gaps across hours are not always 7 minutes. Two exact times At 08:15 and 20:15, every day Every other calendar day from an anchor Gate a daily trigger on an explicit epoch-day anchor for alternating calendar dates Alternating local calendar days is different from a strict 48-hour interval across DST. Startup & intervals At scheduler startup Run at an implementation-specific scheduler startup event, without a service-readiness guarantee @reboot is not a calendar expression and is not portable. Every N hours from activation Use a monotonic systemd timer, robfig @every or AWS rate() when the phase must start at activation A cron hour step is anchored to clock-field boundaries. Commands and file rules for installing, inspecting, and hardening traditional cron jobs. Edit the current user's crontab. List the current user's crontab. Remove the current user's crontab. Back up with crontab -l first. Edit another user's crontab when permitted. List another user's crontab when permitted. Remove another user's crontab when permitted. Replace the current user's crontab with the named file. Test a Cronie crontab file's syntax without installing it. Cronie checks syntax only and cannot prove that a command is correct. Ask for confirmation before removing the current crontab. System drop-in files include a user field between the schedule and command. The system crontab also includes a user field. Control which users may install crontabs. Declare the environment a non-interactive command needs. Disable cron mail for following entries. Cronie and anacron can delay job starts by a bounded random amount. The first unescaped % ends the command; remaining text becomes standard input with each % changed to a newline. Shell quotes do not protect %. Escape a literal percent with a backslash. Append standard output and standard error to one log. Acquire a non-blocking lock so overlapping runs exit. Put a wall-clock limit around a command. Debian run-parts accepts names made only of letters, digits, underscores and hyphens; dots are skipped. Filename rules vary by implementation; use run-parts --test. Use a timer unit when dependencies, persistence, and journal integration matter. Validate a systemd calendar expression and preview future elapse times. Run daily-or-slower work that may have been missed while a machine was off. On macOS, launchd is the native service and scheduling system. Validate syntax first, then reproduce the scheduler's user, environment and timing conditions. 01 Parse with crontab -T Cronie can test a crontab file's syntax without installing it. Parse with crontab -T Cronie can test a crontab file's syntax without installing it. 02 Parse with node-cron.validate node-cron exposes validate(expression) for a syntax check. Parse with node-cron.validate node-cron exposes validate(expression) for a syntax check. 03 Parse with CronExpression.isValidExpression Spring can validate a cron string without scheduling it. Parse with CronExpression.isValidExpression Spring can validate a cron string without scheduling it. 04 Preview the next N runs Use the target scheduler's parser to inspect several future fire times, including a month or DST boundary. Preview the next N runs Use the target scheduler's parser to inspect several future fire times, including a month or DST boundary. 05 Do not validate cron with one regex Field counts and operators differ by dialect, so a cross-platform cron regex cannot validate scheduler semantics. Do not validate cron with one regex Field counts and operators differ by dialect, so a cross-platform cron regex cannot validate scheduler semantics. 06 Run manually as the target user Execute the exact command under the crontab owner to expose permissions and user-specific paths. Run manually as the target user Execute the exact command under the crontab owner to expose permissions and user-specific paths. 07 Use absolute paths Cron usually has a shorter PATH than an interactive shell. Use absolute paths Cron usually has a shorter PATH than an interactive shell. 08 Do not assume a working directory Change directory explicitly or use absolute file paths. Do not assume a working directory Change directory explicitly or use absolute file paths. 09 Check permissions Verify the crontab owner can read inputs, write outputs, and execute the command. Check permissions Verify the crontab owner can read inputs, write outputs, and execute the command. 10 Compare environments Export required variables instead of relying on shell startup files. Compare environments Export required variables instead of relying on shell startup files. 11 Escape percent signs An unescaped % in a crontab command may split the command and standard input. Escape percent signs An unescaped % in a crontab command may split the command and standard input. 12 Write date to a log Append date output to prove that the scheduler reached the command. Write date to a log Append date output to prove that the scheduler reached the command. 13 Check cron mail and redirection Cron may mail command output; capture both stdout and stderr when diagnosing a silent command. Check cron mail and redirection Cron may mail command output; capture both stdout and stderr when diagnosing a silent command. 14 Check the scheduler service Confirm that the cron daemon is running and inspect its system log. Check the scheduler service Confirm that the cron daemon is running and inspect its system log. 15 Run run-parts --test Inspect which files are eligible without executing them. Run run-parts --test Inspect which files are eligible without executing them. 16 Confirm the scheduler timezone Compare the configured scheduler timezone with the local time assumed by the expression. Confirm the scheduler timezone Compare the configured scheduler timezone with the local time assumed by the expression. 17 Check for overlapping runs Compare command duration with its cadence and add a scheduler policy or lock when runs can overlap. Check for overlapping runs Compare command duration with its cadence and add a scheduler policy or lock when runs can overlap. 18 Inspect run history Compare expected and actual starts, exits, durations, and retries in the scheduler. Inspect run history Compare expected and actual starts, exits, durations, and retries in the scheduler. Cron is a clock matcher, not a queue, lock, elapsed-time timer, or alerting system. Avoid constant polling when an event, webhook, or slower cadence can trigger the work. Field steps reset at boundaries and do not guarantee a constant elapsed interval. Use a lock or scheduler concurrency policy when a run can outlast its cadence. Stagger fixed minutes or use Jenkins H when many jobs share the same scheduler. A local 02:30 can disappear or move during a daylight-saving transition. This silently skips months with fewer than 31 days. Prefer a stable, observable stagger such as a fixed minute or Jenkins H. Record the scheduler timezone and convert business-time requirements explicitly. Capture exits, timeouts, missed starts, and repeated failures outside the command itself. Polling every minute Avoid constant polling when an event, webhook, or slower cadence can trigger the work. Treating */N as elapsed time Field steps reset at boundaries and do not guarantee a constant elapsed interval. Allowing long jobs to overlap Use a lock or scheduler concurrency policy when a run can outlast its cadence. Top-of-hour thundering herd Stagger fixed minutes or use Jenkins H when many jobs share the same scheduler. Critical work in the DST gap A local 02:30 can disappear or move during a daylight-saving transition. Assuming every month has day 31 This silently skips months with fewer than 31 days. Prefer a stable, observable stagger such as a fixed minute or Jenkins H. Hard-coded UTC assumptions Record the scheduler timezone and convert business-time requirements explicitly. No failure alerting Capture exits, timeouts, missed starts, and repeated failures outside the command itself. Cron cheatsheet FAQ The five fields are minute, hour, day of month, month, and day of week, in that order. An asterisk matches every allowed value in its field. In the day-of-week field, it means every day. Read it as seconds, minutes, hours, day of month, month, day of week, and year. The year is optional in Quartz, so confirm whether the target expression has six or seven fields. Expression: 0 0 9 ? * MON-FRI * Standard cron has no native biweekly cadence. Trigger weekly and use a wrapper that checks ISO week parity. Days and months L selects the last day or weekday occurrence, W selects the nearest weekday to a month day, and # selects the nth weekday of a month. These operators are dialect-specific. No. It runs on days 1, 8, 15, 22, and 29, then resets at the next month boundary, so the elapsed gap is not always seven days. Expression: 0 0 */7 * * No. Vixie ORs restricted day-of-month and day-of-week fields, so this runs every Monday and every day from the 1st through the 7th. Expression: 0 9 1-7 * 1 Timezones and DST It depends on the scheduler. Vercel uses UTC, GitHub Actions uses UTC by default, and traditional cron usually uses the host timezone. A local time can be skipped when clocks move forward or occur twice when clocks move back; exact handling depends on the scheduler. Use CRON_TZ for following entries in compatible Vixie crontabs. Kubernetes CronJob uses .spec.timeZone with an IANA timezone; support and configuration differ by scheduler. They use a question mark to leave one day field unspecified when the other day field defines the schedule. H tells Jenkins to choose a stable hash-derived value from the field range. It spreads jobs across time without choosing a new random value on every run. @reboot runs once when a Vixie cron daemon starts. It is a startup event rather than a portable calendar expression, so do not assume every scheduler supports it. Use cron(0 12 ? * MON-FRI *) for noon every weekday. EventBridge requires six fields including year, puts ? in one day field, and requires the cron(...) wrapper. Expression: 0 12 ? * MON-FRI * Escape % as \% , use flock -n to prevent overlapping runs, and set MAILTO when cron mail should receive command output. Also use absolute paths and redirect standard error to a log. Write the cron here. Run it on Crontap. Point Crontap at any URL. Pick any cron. Done. WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks. 1.9k+ teams · Free forever tier · No credit card “ every 5 minutes ”
📥 下载地址(文章结尾)
装机神器,一键装机,安装任何系统。纯净版,原版,软件版,精简版,英文版。