Bird
Raised Fist0
Linux CLIscripting~5 mins

Why cron automates recurring tasks in Linux CLI - Why It Works

Choose your learning style10 modes available
Introduction
Many tasks on a computer need to happen again and again at set times. Doing these tasks by hand every time is slow and easy to forget. Cron is a tool that runs these tasks automatically on a schedule, saving time and avoiding mistakes.
When you want to back up important files every night without remembering to do it
When you need to clear temporary files every hour to save disk space
When you want to send a report email every Monday morning automatically
When you need to restart a service regularly to keep it running smoothly
When you want to run a script to update data every day at a specific time
Commands
This command lists your current scheduled cron jobs so you can see what tasks are set to run automatically.
Terminal
crontab -l
Expected OutputExpected
30 2 * * * /home/user/backup.sh 0 * * * * /home/user/cleanup.sh
This command adds a new cron job that runs the report.sh script every Monday at 5 AM by sending the job definition to crontab.
Terminal
echo "0 5 * * 1 /home/user/report.sh" | crontab -
Expected OutputExpected
No output (command runs silently)
Check again to confirm the new cron job was added successfully.
Terminal
crontab -l
Expected OutputExpected
30 2 * * * /home/user/backup.sh 0 * * * * /home/user/cleanup.sh 0 5 * * 1 /home/user/report.sh
This command checks if the cron service is running, which is necessary for cron jobs to execute.
Terminal
systemctl status cron
Expected OutputExpected
● cron.service - Regular background program processing daemon Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2024-06-07 10:00:00 UTC; 1h 30min ago Main PID: 1234 (cron) Tasks: 1 (limit: 4915) Memory: 1.2M CGroup: /system.slice/cron.service └─1234 /usr/sbin/cron -f
Key Concept

If you remember nothing else from this pattern, remember: cron runs your tasks automatically at set times so you never have to do them by hand again.

Common Mistakes
Editing the crontab file without saving or installing it properly
The new cron jobs won't be registered and won't run if the crontab isn't saved correctly.
Use 'crontab -e' to edit and save the file, or pipe the job list into 'crontab -' to install new jobs.
Not checking if the cron service is running
If the cron service is stopped, no scheduled tasks will run.
Always verify cron is active with 'systemctl status cron' and start it if needed.
Using incorrect time format in cron expressions
Cron jobs won't run at the intended times or may not run at all.
Learn the five-field time format (minute, hour, day, month, weekday) and test your schedule.
Summary
Use 'crontab -l' to list current scheduled tasks.
Add new tasks by editing crontab with 'crontab -e' or piping commands into 'crontab -'.
Ensure the cron service is running so scheduled tasks can execute.

Practice

(1/5)
1. Why do people use cron to automate tasks on Linux systems?
easy
A. To run tasks automatically at set times without manual effort
B. To speed up the computer's hardware components
C. To create graphical user interfaces for applications
D. To permanently delete files from the system

Solution

  1. Step 1: Understand the purpose of cron

    cron is a tool that schedules tasks to run automatically at specified times.
  2. Step 2: Identify the benefit of automation

    Automating tasks saves time and prevents forgetting to run important jobs manually.
  3. Final Answer:

    To run tasks automatically at set times without manual effort -> Option A
  4. Quick Check:

    Cron automates tasks = To run tasks automatically at set times without manual effort [OK]
Hint: Cron runs tasks on schedule to save time and effort [OK]
Common Mistakes:
  • Thinking cron speeds up hardware
  • Confusing cron with GUI tools
  • Believing cron deletes files permanently
2. Which of the following is the correct syntax for a cron schedule line to run a task every day at 3 AM?
easy
A. 3 0 * * * /path/to/script.sh
B. 0 3 * * * /path/to/script.sh
C. * 3 * * * /path/to/script.sh
D. 0 0 3 * * /path/to/script.sh

Solution

  1. Step 1: Understand cron time fields

    The five fields are: minute, hour, day of month, month, day of week.
  2. Step 2: Match 3 AM daily schedule

    Minute = 0, Hour = 3, and all other fields as * to mean every day.
  3. Final Answer:

    0 3 * * * /path/to/script.sh -> Option B
  4. Quick Check:

    Minute=0, Hour=3 daily = 0 3 * * * /path/to/script.sh [OK]
Hint: Minute first, then hour; 3 AM is hour 3, minute 0 [OK]
Common Mistakes:
  • Swapping hour and minute fields
  • Using * for minute instead of 0
  • Misplacing day or month fields
3. Given this cron entry: 30 2 * * 1 /usr/bin/backup.sh, what does it do?
medium
A. Runs backup.sh every hour at 2:30
B. Runs backup.sh every day at 2:30 AM
C. Runs backup.sh every Monday at 2:30 AM
D. Runs backup.sh every minute on Mondays

Solution

  1. Step 1: Decode the cron time fields

    30 = minute, 2 = hour, * = every day/month, 1 = Monday (day of week).
  2. Step 2: Interpret the schedule

    The command runs at 2:30 AM only on Mondays.
  3. Final Answer:

    Runs backup.sh every Monday at 2:30 AM -> Option C
  4. Quick Check:

    Minute=30, Hour=2, Day=Monday = Runs backup.sh every Monday at 2:30 AM [OK]
Hint: Day of week 1 means Monday; time is hour then minute [OK]
Common Mistakes:
  • Assuming it runs daily instead of weekly
  • Mixing up day of week with day of month
  • Confusing minute and hour positions
4. A user writes this cron line: 60 24 * * * /home/user/script.sh. What is wrong?
medium
A. Minute value 60 is invalid; should be 0-59
B. Nothing is wrong; it will run daily at midnight
C. Hour value 24 is invalid; should be 0-23
D. Both minute and hour values are invalid

Solution

  1. Step 1: Check minute field validity

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

    Hour must be between 0 and 23; 24 is invalid.
  3. Final Answer:

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

    Minute=60 and Hour=24 invalid = Both minute and hour values are invalid [OK]
Hint: Minutes 0-59, hours 0-23 only [OK]
Common Mistakes:
  • Thinking 60 minutes means next hour
  • Assuming 24 is valid hour for midnight
  • Ignoring cron field limits
5. You want to automate a cleanup script to run every 15 minutes using cron. Which cron schedule line is correct?
hard
A. */15 * * * * /usr/local/bin/cleanup.sh
B. 15 * * * * /usr/local/bin/cleanup.sh
C. 0,15,30 * * * * /usr/local/bin/cleanup.sh
D. 0-15 * * * * /usr/local/bin/cleanup.sh

Solution

  1. Step 1: Understand the syntax for every 15 minutes

    The */15 in the minute field means every 15 minutes.
  2. Step 2: Compare options

    */15 * * * * /usr/local/bin/cleanup.sh uses */15, which is the standard way to run every 15 minutes. 0,15,30 * * * * /usr/local/bin/cleanup.sh lists minutes explicitly but misses 45. 15 * * * * /usr/local/bin/cleanup.sh runs only at minute 15 each hour. 0-15 * * * * /usr/local/bin/cleanup.sh runs minutes 0 to 15 every hour, not every 15 minutes.
  3. Final Answer:

    */15 * * * * /usr/local/bin/cleanup.sh -> Option A
  4. Quick Check:

    Every 15 minutes = */15 in minute field [OK]
Hint: Use */15 in minute field for every 15 minutes [OK]
Common Mistakes:
  • Using single minute value instead of interval
  • Listing minutes but missing some intervals
  • Using range instead of step syntax
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