Bird
Raised Fist0
Linux CLIscripting~5 mins

Common cron expressions in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Cron expressions let you schedule tasks to run automatically at specific times. They help you automate repetitive jobs like backups or updates without needing to start them manually.
When you want to run a backup script every day at midnight without forgetting.
When you need to send a report email every Monday morning automatically.
When you want to clear temporary files every hour to save disk space.
When you want to restart a service every Sunday at 3 AM to keep it fresh.
When you want to run a system update check every day at noon.
Commands
This command lists your current scheduled cron jobs so you can see what tasks are set to run.
Terminal
crontab -l
Expected OutputExpected
30 2 * * * /home/user/backup.sh 0 9 * * 1 /home/user/send_report.sh 0 * * * * /home/user/cleanup.sh
This command schedules the backup.sh script to run every day at midnight by adding it to your cron jobs.
Terminal
echo "0 0 * * * /home/user/backup.sh" | crontab -
Expected OutputExpected
No output (command runs silently)
→
- - Reads the cron job from standard input to set it as your crontab.
This opens your cron jobs in an editor so you can add, change, or remove scheduled tasks manually.
Terminal
crontab -e
Expected OutputExpected
No output (command runs silently)
This command removes all your scheduled cron jobs. Use it carefully to clear your cron schedule.
Terminal
crontab -r
Expected OutputExpected
No output (command runs silently)
Key Concept

If you remember nothing else from cron expressions, remember: the five fields represent minute, hour, day of month, month, and day of week, in that order.

Common Mistakes
Using '*' in all fields without understanding it runs the job every minute.
This causes the task to run too often, which can overload your system.
Specify exact times or ranges for fields to control when the job runs.
Editing cron jobs without using 'crontab -e' or proper syntax.
This can corrupt your cron schedule or cause jobs not to run.
Always use 'crontab -e' or pipe valid cron lines with 'crontab -' to update jobs safely.
Forgetting that the day of week and day of month fields can both trigger the job.
This can cause jobs to run more often than expected if both fields match.
Use careful planning of these fields to avoid unintended runs.
Summary
Use 'crontab -l' to list current scheduled cron jobs.
Add new cron jobs by editing with 'crontab -e' or piping commands with 'crontab -'.
Understand the five fields in a cron expression: minute, hour, day of month, month, and day of week.

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