Bird
Raised Fist0
Linux CLIscripting~10 mins

Common cron expressions in Linux CLI - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Common cron expressions
Start
↓
Read cron expression
↓
Parse fields: min, hour, day, month, weekday
↓
Match current time with fields
↓
If all match?
No→Wait for next minute
Yes↓
Run scheduled command
↓
Repeat every minute
Cron reads the expression fields, checks if current time matches, and runs the command if all fields match.
Execution Sample
Linux CLI
*/5 * * * * echo "Hello"
0 0 * * 0 /backup.sh
30 14 1 * * /monthly_report.sh
These cron lines run commands every 5 minutes, weekly on Sunday midnight, and monthly on the 1st at 14:30.
Execution Table
StepCron FieldValueCurrent TimeMatch?Action
1Minute*/500YesCheck next field
2Hour*14YesCheck next field
3Day of Month*1YesCheck next field
4Month*6YesCheck next field
5Day of Week*3 (Wednesday)YesRun command: echo "Hello"
6Minute000YesCheck next field
7Hour000YesCheck next field
8Day of Month*1YesCheck next field
9Month*6YesCheck next field
10Day of Week0 (Sunday)3 (Wednesday)NoDo not run /backup.sh
11Minute3030YesCheck next field
12Hour1414YesCheck next field
13Day of Month11YesCheck next field
14Month*6YesCheck next field
15Day of Week*3 (Wednesday)YesRun command: /monthly_report.sh
16EndWait for next minute
💡 Execution stops after checking all fields and running commands if matched, then waits for next minute.
Variable Tracker
VariableStartAfter 1After 2After 3Final
MinuteCurrent time00003030
HourCurrent time14141414
Day of MonthCurrent time1111
MonthCurrent time6666
Day of WeekCurrent time3333
Command RunNoneecho "Hello"None/monthly_report.shNone
Key Moments - 3 Insights
Why does the /backup.sh command not run even though the minute and hour match?
Because the day of week field is 0 (Sunday) but current day is 3 (Wednesday), so the condition fails at step 10 in the execution table.
What does the '*/5' in the minute field mean?
It means every 5 minutes, so at minutes 0, 5, 10, 15, etc. This is shown in step 1 where minute 00 matches '*/5'.
Can a cron job run if only some fields match?
No, all fields must match the current time for the command to run, as shown by the checks in the execution table steps.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, at which step does the /backup.sh command fail to run?
AStep 5
BStep 15
CStep 10
DStep 1
💡 Hint
Check the 'Match?' column for /backup.sh in the execution table rows.
According to the variable tracker, what is the value of 'Minute' after the third check?
A30
B00
C14
D3
💡 Hint
Look at the 'Minute' row in variable_tracker under 'After 3'.
If the day of week for /backup.sh was changed to 3, what would happen?
AThe command would run every minute
BThe command would run at midnight on Wednesday
CThe command would never run
DThe command would run only on Sundays
💡 Hint
Refer to the execution table where day of week mismatch caused no run at step 10.
Concept Snapshot
Cron expressions have 5 fields: minute, hour, day of month, month, day of week.
Each field can be a number, '*', or step values like '*/5'.
Cron runs the command only if all fields match the current time.
Common patterns: '*/5 * * * *' runs every 5 minutes.
'0 0 * * 0' runs weekly on Sunday at midnight.
'30 14 1 * *' runs monthly on the 1st at 14:30.
Full Transcript
Cron expressions consist of five fields: minute, hour, day of month, month, and day of week. The cron daemon checks each field against the current time every minute. If all fields match, it runs the scheduled command. For example, '*/5 * * * *' runs a command every 5 minutes. '0 0 * * 0' runs a command weekly on Sunday at midnight. '30 14 1 * *' runs a command monthly on the first day at 14:30. If any field does not match, the command does not run. This is shown in the execution table where the /backup.sh command does not run because the day of week does not match. Understanding each field and how they match current time is key to using cron effectively.

Practice

(1/5)
1. What does the cron expression 0 0 * * * do?
easy
A. Runs a task every minute
B. Runs a task every hour
C. Runs a task every day at midnight
D. Runs a task every Sunday at midnight

Solution

  1. Step 1: Understand the cron fields

    The expression has five fields: minute=0, hour=0, day=*, month=*, weekday=*. This means minute 0, hour 0, every day, every month, every weekday.
  2. Step 2: Interpret the schedule

    Since minute and hour are fixed at 0, and others are '*', the task runs once daily at 00:00 (midnight).
  3. Final Answer:

    Runs a task every day at midnight -> Option C
  4. Quick Check:

    0 0 * * * = daily at midnight [OK]
Hint: Minute and hour 0 means daily at midnight [OK]
Common Mistakes:
  • Thinking * means no schedule
  • Confusing hour and minute fields
  • Assuming it runs every minute
2. Which of the following is the correct cron syntax to run a job every 15 minutes?
easy
A. 15 * * * *
B. */15 * * * *
C. * 15 * * *
D. 0 */15 * * *

Solution

  1. Step 1: Understand the minute field syntax

    Using '*/15' in the minute field means every 15 minutes (0,15,30,45).
  2. Step 2: Check other fields

    All other fields are '*', meaning every hour, day, month, and weekday.
  3. Final Answer:

    */15 * * * * -> Option B
  4. Quick Check:

    */15 in minutes means every 15 minutes [OK]
Hint: */15 in minute field means every 15 minutes [OK]
Common Mistakes:
  • Using 15 in minute field runs only at minute 15
  • Putting 15 in hour field runs at 3 PM only
  • Using 0 */15 runs every 15 hours, not minutes
3. What is the output behavior of this cron expression: 30 6 * * 1?
medium
A. Runs at 6:30 AM every Monday
B. Runs at 6:30 AM every day
C. Runs at 6:00 AM every Monday
D. Runs every minute on Mondays

Solution

  1. Step 1: Analyze the fields

    Minute=30, Hour=6, Day=*, Month=*, Weekday=1 (Monday).
  2. Step 2: Interpret the schedule

    The task runs at 6:30 AM only on Mondays.
  3. Final Answer:

    Runs at 6:30 AM every Monday -> Option A
  4. Quick Check:

    30 6 * * 1 = Monday 6:30 AM [OK]
Hint: Weekday 1 means Monday, time 6:30 is hour:minute [OK]
Common Mistakes:
  • Confusing weekday with day of month
  • Assuming it runs daily instead of weekly
  • Mixing hour and minute fields
4. Identify the error in this cron expression: 60 24 * * *
medium
A. Minute value 60 is invalid
B. Hour value 24 is invalid
C. No error, this is valid syntax
D. Both minute and hour values are invalid

Solution

  1. Step 1: Check minute field validity

    Minute field must be 0-59; 60 is invalid.
  2. Step 2: Check hour field validity

    Hour field must be 0-23; 24 is invalid.
  3. Final Answer:

    Both minute and hour values are invalid -> Option D
  4. Quick Check:

    Minute max 59, hour max 23 [OK]
Hint: Minutes max 59, hours max 23 in cron [OK]
Common Mistakes:
  • Assuming 60 is valid minute
  • Assuming 24 is valid hour
  • Thinking cron allows 24:00 time
5. You want to schedule a backup script to run at 2:15 AM on the 1st day of every month. Which cron expression should you use?
hard
A. 15 2 1 * *
B. 2 15 1 * *
C. 15 2 * * 1
D. 0 2 15 * *

Solution

  1. Step 1: Map time and date to cron fields

    Minute=15, Hour=2, Day=1 (first day), Month=*, Weekday=* (any day).
  2. Step 2: Verify expression correctness

    Expression '15 2 1 * *' matches 2:15 AM on day 1 of every month.
  3. Final Answer:

    15 2 1 * * -> Option A
  4. Quick Check:

    Minute=15, Hour=2, Day=1 means 2:15 AM on 1st [OK]
Hint: Minute Hour Day Month Weekday order in cron [OK]
Common Mistakes:
  • Swapping hour and minute fields
  • Using weekday instead of day of month
  • Setting wrong day or time values
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard