Bird
Raised Fist0
Raspberry Piprogramming~30 mins

Cron jobs for scheduled tasks in Raspberry Pi - Mini Project: Build & Apply

Choose your learning style10 modes available
Cron jobs for scheduled tasks
📖 Scenario: You have a Raspberry Pi at home that you want to use to automate simple tasks like turning on a light or sending a reminder message at specific times.Using cron jobs, you can schedule these tasks to run automatically without needing to do them manually every time.
🎯 Goal: Learn how to create and manage cron jobs on a Raspberry Pi to schedule tasks that run at specific times.You will create a simple script and schedule it to run every minute using a cron job.
📋 What You'll Learn
Create a simple shell script file on the Raspberry Pi
Set a variable for the cron schedule timing
Write a cron job entry using the schedule and script path
Display the current cron jobs to verify the scheduled task
💡 Why This Matters
🌍 Real World
Scheduling tasks on a Raspberry Pi is useful for home automation, reminders, backups, and running maintenance scripts automatically.
💼 Career
Understanding cron jobs is important for system administrators, DevOps engineers, and anyone managing Linux-based servers or devices.
Progress0 / 4 steps
1
Create a simple shell script
Create a file called reminder.sh with the exact content: #!/bin/bash on the first line and echo "Time to take a break!" on the second line.
Raspberry Pi
Hint

Use a text editor like nano or vim to create the file and add the lines exactly as shown.

2
Set the cron schedule variable
Create a variable called cron_schedule and set it to the string "* * * * *" which means the task will run every minute.
Raspberry Pi
Hint

Make sure there are no spaces around the equals sign when assigning the variable in bash.

3
Write the cron job entry
Write a line that creates a cron job entry by echoing $cron_schedule /home/pi/reminder.sh and appending it to the current crontab using crontab -l | {{command}} | crontab -. Use cat and echo commands to do this.
Raspberry Pi
Hint

This command adds the new cron job without removing existing ones.

4
Display current cron jobs
Write a command to display the current cron jobs using crontab -l.
Raspberry Pi
Hint

This command lists all scheduled cron jobs for the current user.

Practice

(1/5)
1. What is the main purpose of a cron job on a Raspberry Pi?
easy
A. To update the Raspberry Pi operating system
B. To manually execute commands in the terminal
C. To schedule tasks to run automatically at specific times
D. To install new software packages

Solution

  1. Step 1: Understand what cron jobs do

    Cron jobs are used to automate tasks by running commands or scripts at scheduled times without manual intervention.
  2. Step 2: Compare options with cron job purpose

    Only To schedule tasks to run automatically at specific times describes scheduling tasks automatically, which matches the purpose of cron jobs.
  3. Final Answer:

    To schedule tasks to run automatically at specific times -> Option C
  4. Quick Check:

    Cron job purpose = schedule tasks automatically [OK]
Hint: Cron jobs run commands automatically on schedule [OK]
Common Mistakes:
  • Confusing cron jobs with manual command execution
  • Thinking cron updates the system automatically
  • Assuming cron installs software
2. Which of the following is the correct syntax to edit the cron jobs for the current user on a Raspberry Pi?
easy
A. cronedit
B. cron -edit
C. editcron
D. crontab -e

Solution

  1. Step 1: Recall the command to edit cron jobs

    The standard command to edit cron jobs for the current user is crontab -e.
  2. Step 2: Verify other options

    Options A, B, and D are not valid Linux commands for editing cron jobs.
  3. Final Answer:

    crontab -e -> Option D
  4. Quick Check:

    Edit cron jobs command = crontab -e [OK]
Hint: Use 'crontab -e' to edit cron jobs [OK]
Common Mistakes:
  • Typing incorrect commands like 'cronedit'
  • Using 'cron -edit' which is invalid
  • Assuming 'editcron' is a command
3. Given the cron job entry 30 2 * * * /home/pi/backup.sh, what does it do?
medium
A. Runs backup.sh every day at 2:30 AM
B. Runs backup.sh every 30 minutes
C. Runs backup.sh every day at 2:00 PM
D. Runs backup.sh every 2 hours and 30 minutes

Solution

  1. Step 1: Understand cron time fields

    The fields are: minute (30), hour (2), day of month (*), month (*), day of week (*). This means the command runs at 2:30 AM every day.
  2. Step 2: Match the time to options

    Runs backup.sh every day at 2:30 AM correctly states it runs daily at 2:30 AM. Other options misunderstand the timing.
  3. Final Answer:

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

    Cron time 30 2 * * * = 2:30 AM daily [OK]
Hint: Minute then hour in cron means 30 2 is 2:30 AM [OK]
Common Mistakes:
  • Confusing AM and PM hours
  • Thinking it runs every 30 minutes
  • Misreading the asterisks as specific days
4. You added this cron job: 0 25 * * * /home/pi/script.sh but it never runs. What is the problem?
medium
A. The hour value 25 is invalid in cron syntax
B. The script path is incorrect
C. The minute value 0 is invalid
D. Cron jobs cannot run scripts

Solution

  1. Step 1: Check the hour field in cron syntax

    The hour field must be between 0 and 23. 25 is invalid and causes the job not to run.
  2. Step 2: Verify other options

    The script path might be correct, minute 0 is valid, and cron can run scripts, so only the hour value is the problem.
  3. Final Answer:

    The hour value 25 is invalid in cron syntax -> Option A
  4. Quick Check:

    Cron hour must be 0-23, 25 is invalid [OK]
Hint: Hour in cron is 0-23, not 25 [OK]
Common Mistakes:
  • Using invalid hour values above 23
  • Assuming minute 0 is wrong
  • Thinking cron can't run scripts
5. You want to run a Python script every weekday at 7:15 AM on your Raspberry Pi. Which cron job entry is correct?
hard
A. 7 15 * * 1-5 /usr/bin/python3 /home/pi/script.py
B. 15 7 * * 1-5 /usr/bin/python3 /home/pi/script.py
C. 15 7 * * 6,7 /usr/bin/python3 /home/pi/script.py
D. 15 7 1-5 * * /usr/bin/python3 /home/pi/script.py

Solution

  1. Step 1: Understand cron fields for time and days

    The format is minute hour day_of_month month day_of_week. To run at 7:15 AM, minute=15, hour=7. Weekdays are days 1-5 (Monday to Friday).
  2. Step 2: Check each option

    15 7 * * 1-5 /usr/bin/python3 /home/pi/script.py correctly uses '15 7 * * 1-5' for 7:15 AM on weekdays. 7 15 * * 1-5 /usr/bin/python3 /home/pi/script.py swaps hour and minute. 15 7 * * 6,7 /usr/bin/python3 /home/pi/script.py uses weekend days (6,7). 15 7 1-5 * * /usr/bin/python3 /home/pi/script.py uses day_of_month 1-5, not weekdays.
  3. Final Answer:

    15 7 * * 1-5 /usr/bin/python3 /home/pi/script.py -> Option B
  4. Quick Check:

    Weekday cron = 1-5, time 7:15 = 15 7 [OK]
Hint: Weekdays are 1-5 in cron day_of_week field [OK]
Common Mistakes:
  • Swapping hour and minute fields
  • Using day_of_month instead of day_of_week for weekdays
  • Confusing weekend days with weekdays
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