Bird
Raised Fist0
Raspberry Piprogramming~20 mins

Backup and recovery strategies in Raspberry Pi - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Raspberry Pi Backup Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this Raspberry Pi backup script snippet?
Consider this Python script running on a Raspberry Pi to create a backup of a directory. What will be printed after execution?
Raspberry Pi
import os
backup_dir = '/home/pi/backup'
source_dir = '/home/pi/data'
os.system(f'mkdir -p {backup_dir}')
os.system(f'cp -r {source_dir}/* {backup_dir}/')
print('Backup completed')
ASyntaxError
BBackup completed
CFileNotFoundError
DPermission denied
Attempts:
2 left
💡 Hint
The script creates the backup directory if it doesn't exist and copies files.
❓ Predict Output
intermediate
2:00remaining
What error does this recovery script raise?
This Python snippet attempts to restore files from a backup folder on a Raspberry Pi. What error will it raise if the backup folder does not exist?
Raspberry Pi
import shutil
backup_dir = '/home/pi/backup'
restore_dir = '/home/pi/data'
shutil.copytree(backup_dir, restore_dir)
AFileNotFoundError
BPermissionError
CKeyError
DSyntaxError
Attempts:
2 left
💡 Hint
copytree requires the source directory to exist.
🧠 Conceptual
advanced
2:00remaining
Which backup strategy minimizes data loss on a Raspberry Pi?
You want to back up your Raspberry Pi data regularly. Which strategy best minimizes data loss if the Pi crashes unexpectedly?
AFull backup once a month
BDifferential backup once a week
CIncremental backup every hour
DNo backup, just copy files manually
Attempts:
2 left
💡 Hint
Think about how often data changes and how quickly you want to recover.
❓ Predict Output
advanced
2:00remaining
What is the output of this Raspberry Pi backup verification script?
This Python script checks if the backup directory contains the expected number of files. What will it print if the backup has exactly 5 files?
Raspberry Pi
import os
backup_dir = '/home/pi/backup'
files = os.listdir(backup_dir)
if len(files) == 5:
    print('Backup verified')
else:
    print('Backup incomplete')
APermissionError
BBackup incomplete
CFileNotFoundError
DBackup verified
Attempts:
2 left
💡 Hint
The script counts files and compares to 5.
❓ Predict Output
expert
2:00remaining
What is the value of variable 'status' after running this Raspberry Pi backup script?
This Python script attempts to back up a directory and sets 'status' based on success. What is the value of 'status' after running?
Raspberry Pi
import subprocess
backup_dir = '/home/pi/backup'
source_dir = '/home/pi/data'
try:
    subprocess.run(['cp', '-r', source_dir + '/*', backup_dir], check=True)
    status = 'Success'
except subprocess.CalledProcessError:
    status = 'Failed'
AFailed
BSuccess
CSyntaxError
DFileNotFoundError
Attempts:
2 left
💡 Hint
Check how subprocess.run handles shell wildcards without shell=True.

Practice

(1/5)
1. What is the main purpose of creating backups on a Raspberry Pi?
easy
A. To install new software automatically
B. To speed up the Raspberry Pi's processing power
C. To save copies of important files in case of data loss
D. To increase the screen resolution

Solution

  1. Step 1: Understand the concept of backup

    Backups are copies of important data saved separately to prevent loss.
  2. Step 2: Identify the main purpose on Raspberry Pi

    On Raspberry Pi, backups protect files from accidental deletion or corruption.
  3. Final Answer:

    To save copies of important files in case of data loss -> Option C
  4. Quick Check:

    Backup = Save copies [OK]
Hint: Backups protect data by saving copies elsewhere [OK]
Common Mistakes:
  • Confusing backup with speeding up the device
  • Thinking backup installs software
  • Assuming backup changes display settings
2. Which command is commonly used on Raspberry Pi to create a full image backup of the SD card?
easy
A. rsync
B. dd
C. cp
D. mv

Solution

  1. Step 1: Identify commands for backup

    rsync copies files, dd creates exact disk images, cp copies files, mv moves files.
  2. Step 2: Choose command for full SD card image

    dd is used to create a full image backup of the SD card on Raspberry Pi.
  3. Final Answer:

    dd -> Option B
  4. Quick Check:

    Full image backup = dd [OK]
Hint: Use dd for full SD card image backups [OK]
Common Mistakes:
  • Using rsync for full disk image instead of file sync
  • Confusing cp or mv with disk imaging
  • Not knowing dd creates exact disk copies
3. What will be the output of this command on Raspberry Pi?
rsync -av --delete /home/pi/data/ /backup/data/
medium
A. Copies files from /home/pi/data/ to /backup/data/ and deletes files not in source
B. Copies files from /backup/data/ to /home/pi/data/ without deleting
C. Deletes all files in /home/pi/data/ without copying
D. Moves files from /home/pi/data/ to /backup/data/ without copying

Solution

  1. Step 1: Understand rsync options

    -a means archive (copy recursively with attributes), -v means verbose, --delete removes files in destination not in source.
  2. Step 2: Analyze source and destination paths

    Files are copied from /home/pi/data/ to /backup/data/ with deletion of extra files in destination.
  3. Final Answer:

    Copies files from /home/pi/data/ to /backup/data/ and deletes files not in source -> Option A
  4. Quick Check:

    rsync -av --delete = sync with deletion [OK]
Hint: rsync --delete syncs source to destination exactly [OK]
Common Mistakes:
  • Confusing source and destination order
  • Thinking rsync moves files instead of copying
  • Ignoring --delete option effect
4. You run dd if=/dev/mmcblk0 of=backup.img but get a 'Permission denied' error. What is the likely fix?
medium
A. Run the command with sudo to get admin rights
B. Change the output file name to backup.txt
C. Use rsync instead of dd
D. Restart the Raspberry Pi and try again

Solution

  1. Step 1: Understand permission error cause

    Accessing /dev/mmcblk0 requires admin rights, normal user lacks permission.
  2. Step 2: Fix by running with elevated rights

    Using sudo runs the command as admin, allowing access to device files.
  3. Final Answer:

    Run the command with sudo to get admin rights -> Option A
  4. Quick Check:

    Permission denied = need sudo [OK]
Hint: Use sudo for commands accessing system devices [OK]
Common Mistakes:
  • Changing file extension does not fix permission
  • Switching to rsync won't fix device access
  • Restarting doesn't change permissions
5. You want to automate daily backups of your Raspberry Pi's important files to an external USB drive. Which approach is best?
hard
A. Manually copy files every day using file manager
B. Install a game that backs up files automatically
C. Use dd to create a full SD card image every hour
D. Write a script using rsync and schedule it with cron

Solution

  1. Step 1: Identify automation tools on Raspberry Pi

    rsync efficiently copies files; cron schedules tasks automatically.
  2. Step 2: Choose best method for daily automated backup

    Writing a script with rsync and scheduling with cron automates daily backups reliably.
  3. Final Answer:

    Write a script using rsync and schedule it with cron -> Option D
  4. Quick Check:

    Automate backups = rsync + cron [OK]
Hint: Use cron with rsync for automated backups [OK]
Common Mistakes:
  • Relying on manual copying is not automated
  • Using dd hourly wastes space and time
  • Installing unrelated software won't backup files
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