跳到正文
cccskills
免费在 GitHub 公开

cron-parser

Read, write, and debug cron expressions with field reference, scheduling logic, and common patterns.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md4.7 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Overview

Cron expressions are write-only for most people — everyone copies them, few can read them. But misreading a schedule means backups that never run or jobs that fire 60x too often. This skill makes cron legible: the five fields, special strings, the day-of-month/day-of-week gotcha, and debugging techniques for "why didn't it run?"

When to use

  • Writing cron schedules for jobs and automation

  • Reading and understanding existing cron expressions

  • Debugging jobs that run at wrong times (or not at all)

  • Choosing between cron and modern schedulers

  • Documenting schedules for teams

Core concepts

    • The five fields. minute hour day-of-month month day-of-week — in that order. 30 2 * * * = 2:30 AM daily. Memorize the order with: "my happy dog makes dinner" (minute, hour, dom, month, dow) or just drill it until it's reflex.
    • Field syntax. * (every), */15 (every 15), 1,15 (list), 1-5 (range, Mon-Fri for dow), 9-17/2 (every 2 hours 9-5). Ranges and steps compose; lists don't take steps in classic cron.
    • The DOM/DOW trap. When both day-of-month and day-of-week are restricted (not *), cron runs when EITHER matches — not both. 0 0 1 * 1 runs on the 1st of the month AND every Monday. This surprises everyone once.
    • Special strings. @reboot, @yearly, @monthly, @weekly, @daily, @hourly — readable shorthands. Note: @reboot behavior varies (and doesn't exist in all cron implementations).
    • Environment minimalism. Cron runs with a sparse environment: minimal PATH, no shell profile. The #1 "works manually, fails in cron" cause is PATH — use absolute paths for everything or set PATH explicitly in the crontab.
    • Cron flavors differ. Vixie cron (classic Linux), cronie, systemd timers (the modern Linux alternative — more features, logging built in), and cloud schedulers (CloudWatch Events, Cloud Scheduler) all have quirks. @reboot, seconds fields, and timezone handling vary — check your implementation.

Practical workflow

    1. Write it plainly first. "Every weekday at 9:30 AM" → then translate: 30 9 * * 1-5. Describe in words before encoding — the words are the spec you'll verify against.
  1. Use the field table. Build expressions field by field:

    • minute (0-59), hour (0-23), dom (1-31), month (1-12), dow (0-7, both 0 and 7 = Sunday)

    • Verify each field independently before combining.

  2. Common patterns (verify against your cron flavor):

    • */5 * * * * — every 5 minutes

    • 0 * * * * — hourly

    • 0 2 * * * — daily 2 AM

    • 0 9 * * 1 — Mondays 9 AM

    • 0 0 1 * * — first of month midnight

    • 30 9 * * 1-5 — weekdays 9:30 AM

    • 0 0 * * 0 — Sundays midnight

    1. Debug non-running jobs. Checklist: is the cron daemon running? Is the crontab installed for the right user (crontab -l)? Absolute paths everywhere? Environment variables set? Permissions on the script (executable)? Output captured (redirect stdout/stderr to a log — silent failures are cron's default)? Timezone correct (system vs expected)?
    1. Log everything. 30 2 * * * /opt/job.sh >> /var/log/job.log 2>&1 — without output capture, failures vanish. Better: have the job log itself with timestamps.
    1. Consider alternatives. Need seconds precision, dependencies, retries, or observability? Cron is the wrong tool — use systemd timers, or a proper scheduler (Airflow/Temporal for workflows, cloud schedulers for cloud). Cron is for simple, independent, minute-granularity jobs.

Common pitfalls

    • The DOM/DOW OR trap. 0 0 1 * 1 doesn't mean "first Monday" — it means "1st AND Mondays." For "first Monday," you need wrapper logic in the script.
    • Timezone confusion. Cron uses system local time (usually). DST transitions cause skipped or doubled runs. For UTC-critical jobs, set CRON_TZ (where supported) or run the system in UTC.
    • Environment assumptions. python resolving via PATH, ~ expansion, locale settings — all differ under cron. Absolute paths, explicit env vars, tested in a clean shell.
    • Overlapping runs. A job that takes 70 minutes on an hourly schedule stacks up. Use file locks (flock) to prevent concurrent runs.
    • Silent failures. No output redirection = no evidence. Every cron job should log somewhere you'll actually check — or alert on failure.
    • Editing the wrong crontab. User crontab vs system /etc/crontab (which has an extra user field) vs /etc/cron.d/. The 6-field system format in a 5-field user crontab breaks mysteriously.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Master 1Password: vaults, Watchtower, passkeys, SSH agent, CLI, and family/team administration. Use when getting full value from 1Password personally or administering it for others.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills242026年10月10日 更新

Create 3D visuals with modeling, texturing, lighting, rendering, and optimization for web and product.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills242026年10月10日 更新

Create 3D web experiences: scene setup, models, materials, lighting, animation, scroll-driven scenes, and performance budgets. Use when adding 3D to websites beyond basic demos.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills242026年10月10日 更新

Writing abstracts that get papers read — structured content, the 5-sentence core, and journal-specific constraints.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills242026年10月10日 更新

Learn effectively from courses and academies: choosing programs, studying actively, and converting courses into skills. Use when investing time/money in structured learning.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills242026年10月10日 更新

Audit designs for accessibility with WCAG checklists covering color, type, focus, motion, and content.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills242026年10月10日 更新

查看 aicodedecode 的全部技能

报告此技能的问题