Cron is a tool that runs commands or scripts automatically at scheduled times or intervals on a Raspberry Pi.
Click to reveal answer
beginner
How do you edit the cron jobs for the current user?
You use the command crontab -e to open and edit the list of scheduled tasks for the current user.
Click to reveal answer
intermediate
What does the cron time format */5 * * * * mean?
It means the task runs every 5 minutes, every hour, every day, every month, and every weekday.
Click to reveal answer
intermediate
Why is it important to use full paths in cron jobs?
Because cron runs with a limited environment, using full paths ensures the commands and scripts run correctly without missing files or programs.
Click to reveal answer
intermediate
How can you check if your cron job ran successfully?
You can check the cron logs using grep CRON /var/log/syslog or redirect output to a file in your cron job.
Click to reveal answer
Which command opens the cron editor for the current user?
Acrontab -e
Bcronedit
Ccron -open
Deditcron
✗ Incorrect
The command crontab -e opens the cron editor for the current user.
What does the asterisk (*) symbol mean in a cron schedule?
ASkip this field
BNo value
COnly once
DEvery possible value for that time field
✗ Incorrect
An asterisk (*) means the task runs for every possible value of that time field.
If you want a script to run every day at 3 AM, which cron time would you use?
A0 3 * * *
B3 0 * * *
C* 3 * * *
D0 0 3 * *
✗ Incorrect
The format is minute hour day month weekday. So 0 3 * * * runs at 3:00 AM every day.
Why should you use full paths in cron commands?
ATo make the command shorter
BBecause cron has a limited environment and may not find commands without full paths
CTo speed up the cron job
DIt is not necessary to use full paths
✗ Incorrect
Cron runs with a limited environment, so full paths ensure commands run correctly.
Where can you find logs to check if cron jobs ran successfully?
A/home/user/cron.log
B/etc/cron.log
C/var/log/syslog
D/var/log/cronjobs
✗ Incorrect
Cron logs are usually found in /var/log/syslog on Raspberry Pi systems.
Explain how to schedule a Python script to run every hour on a Raspberry Pi using cron.
Think about the cron time format and environment paths.
You got /4 concepts.
Describe how you would troubleshoot if your scheduled data collection script does not run as expected with cron.
Look for logs and environment issues.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of using cron on a Raspberry Pi for database tasks?
easy
A. To create database backups only when the Pi is restarted
B. To manually start database queries
C. To store data permanently
D. To automatically run scripts at scheduled times
Solution
Step 1: Understand cron's role
Cron is a tool that runs commands or scripts automatically at set times without user intervention.
Step 2: Connect cron to database tasks
Using cron, you can schedule database scripts to run regularly, like collecting data or backups.
Final Answer:
To automatically run scripts at scheduled times -> Option D
Quick Check:
Cron automates tasks = A [OK]
Hint: Cron schedules tasks automatically, no manual start needed [OK]
Common Mistakes:
Thinking cron runs scripts only manually
Confusing cron with data storage
Assuming cron runs only at reboot
2. Which of the following is the correct command to edit the cron jobs on a Raspberry Pi?
easy
A. crontab -e
B. cronedit
C. cron -edit
D. editcron
Solution
Step 1: Recall the standard cron command
The command to edit cron jobs is crontab -e, which opens the cron table for editing.
Step 2: Verify other options
Other options like cronedit, cron -edit, and editcron are not valid commands.
Final Answer:
crontab -e -> Option A
Quick Check:
Edit cron jobs = crontab -e [OK]
Hint: Use 'crontab -e' to edit cron jobs every time [OK]
Common Mistakes:
Typing 'cronedit' instead of 'crontab -e'
Using wrong command syntax
Confusing cron commands with other tools
3. Given this cron job entry: 0 * * * * /home/pi/scripts/collect_data.sh What does this cron job do?
medium
A. Runs the script every minute
B. Runs the script every hour at minute 0
C. Runs the script once a day at midnight
D. Runs the script every day at noon
Solution
Step 1: Understand cron time format
The five fields represent minute, hour, day of month, month, and day of week. '0 * * * *' means minute 0 of every hour.
Step 2: Interpret the schedule
This means the script runs at the start of every hour (e.g., 1:00, 2:00, 3:00, etc.).
Final Answer:
Runs the script every hour at minute 0 -> Option B
Quick Check:
Minute 0 every hour = hourly run [OK]
Hint: Minute 0 with * hour means hourly at start [OK]
Common Mistakes:
Thinking it runs every minute
Confusing hour and minute fields
Assuming daily or noon run
4. A user added this cron job: */15 * * * * collect_data.sh But the script does not run. What is the most likely problem?
medium
A. The script path is missing; cron needs full path
B. The cron syntax is invalid
C. The script runs only once a day
D. Cron does not support scripts with .sh extension
Solution
Step 1: Check cron job command
The command collect_data.sh lacks a full path. Cron requires full paths to scripts.
Step 2: Understand cron environment
Cron runs with a minimal environment and does not know where to find scripts without full paths.
Final Answer:
The script path is missing; cron needs full path -> Option A
Quick Check:
Always use full script path in cron [OK]
Hint: Always specify full script path in cron jobs [OK]
Common Mistakes:
Assuming cron finds scripts in current directory
Thinking .sh extension is unsupported
Believing syntax is wrong when it is correct
5. You want to collect sensor data every day at 6:30 AM and save it to a database using a script at /home/pi/scripts/save_data.sh. Which cron entry correctly schedules this?
hard
A. 30 06 * * 1-5 /home/pi/scripts/save_data.sh
B. 6 30 * * * /home/pi/scripts/save_data.sh
C. 30 6 * * * /home/pi/scripts/save_data.sh
D. 0 6 * * * /home/pi/scripts/save_data.sh
Solution
Step 1: Understand cron time fields
The format is: minute hour day month weekday. To run at 6:30 AM daily, minute=30 and hour=6.
Step 2: Check each option
30 6 * * * /home/pi/scripts/save_data.sh uses '30 6 * * *' which means 6:30 AM every day. 6 30 * * * /home/pi/scripts/save_data.sh reverses minute and hour. 30 06 * * 1-5 /home/pi/scripts/save_data.sh restricts to weekdays only. 0 6 * * * /home/pi/scripts/save_data.sh runs at 6:00 AM.
Final Answer:
30 6 * * * /home/pi/scripts/save_data.sh -> Option C