What 0 0 1 * * does
Day-of-month is pinned to 1 while month and day-of-week stay as *, so the job fires once per month at 00:00 on the 1st — twelve times a year.
Midnight on the 1st is a busy moment
Every system in your stack that runs a monthly job runs it at exactly this time. If you have several, stagger them — 0 0 1 * *, 15 0 1 * *, 30 0 1 * * — rather than having them contend for the same database at once.
Frequently asked questions
What is the cron expression for the first day of the month?
0 0 1 * * runs at midnight on the 1st of every month.
How do I run a cron job on the last day of the month?
Standard cron cannot express this. Quartz and some schedulers support L in the day-of-month field. On POSIX cron the usual workaround is to run daily and exit early unless tomorrow is the 1st: 0 0 28-31 * * [ $(date -d tomorrow +%d) = 01 ] && yourjob.
Related cron expressions
Browse the full cron expression reference, or build your own expression from scratch.