What if your Raspberry Pi could tidy up its own data mess without you ever worrying about it?
Why Data rotation and cleanup in Raspberry Pi? - Purpose & Use Cases
Imagine you have a Raspberry Pi collecting sensor data every minute, saving it to files. Over weeks, these files pile up, filling your storage and making it hard to find recent data.
Manually deleting old files or moving them is slow and easy to forget. You might delete important data by mistake or run out of space unexpectedly, causing your Pi to stop working properly.
Data rotation and cleanup automate this process. Your Raspberry Pi can regularly archive or delete old data files, keeping only what you need. This keeps storage healthy without you lifting a finger.
rm data_20230101.txt
rm data_20230102.txt
# Repeat for many filesfind /data -type f -mtime +7 -delete # Deletes files older than 7 days automatically
This lets your Raspberry Pi run smoothly over time, managing data storage automatically so you can focus on your projects, not file cleanup.
A weather station on a Raspberry Pi collects daily logs. Using data rotation, it keeps only the last 30 days of logs, deleting older ones to save space and avoid manual work.
Manual file cleanup is slow and risky.
Data rotation automates deleting or archiving old files.
This keeps your Raspberry Pi storage organized and healthy.
Practice
Solution
Step 1: Understand data rotation and cleanup
Data rotation and cleanup help manage files by removing old or unnecessary data.Step 2: Identify the main goal
The goal is to keep storage organized and free space by deleting old files.Final Answer:
To keep storage organized and remove old files -> Option AQuick Check:
Data rotation = storage cleanup [OK]
- Confusing data cleanup with hardware upgrades
- Thinking it changes system performance directly
- Assuming it installs software automatically
Solution
Step 1: Understand the find command syntax
To delete files older than 7 days, use find with -type f (files), -mtime +7 (older than 7 days), and -delete.Step 2: Check each option
find /var/log -type f -mtime +7 -delete uses correct syntax. find /var/log -type d -mtime +7 -delete targets directories (-type d), not files. rm /var/log/* -mtime +7 uses rm incorrectly with -mtime. delete /var/log -older 7 is not a valid command.Final Answer:
find /var/log -type f -mtime +7 -delete -> Option BQuick Check:
find + -mtime +7 + -delete = correct [OK]
- Using -type d instead of -type f
- Trying to use rm with -mtime option
- Using invalid commands like delete
logfile="/var/log/syslog" backup="/var/log/syslog-$(date +%Y%m%d)" mv $logfile $backup > $logfile ls /var/log/syslog*
Solution
Step 1: Understand the script actions
The script renames syslog to syslog-YYYYMMDD (today's date), then creates a new empty syslog file.Step 2: Predict the ls output
After these steps, both /var/log/syslog (empty) and /var/log/syslog-YYYYMMDD exist, so ls lists both.Final Answer:
/var/log/syslog and /var/log/syslog-YYYYMMDD files listed -> Option CQuick Check:
mv + new empty file + ls = both files [OK]
- Thinking syslog file is deleted
- Assuming mv copies instead of moves
- Ignoring the empty file creation with >
logfile="/var/log/app.log" backup="/var/log/app.log-$(date +%Y%m%d)" mv $logfile $backup > $logfile find /var/log -type f -mtime 7 -delete
Solution
Step 1: Check the find command usage
The find command uses -mtime 7 which matches files exactly 7 days old, not older than 7 days.Step 2: Correct the find command
To delete files older than 7 days, use -mtime +7 instead of -mtime 7.Final Answer:
The find command should use -mtime +7 to delete files older than 7 days -> Option AQuick Check:
find -mtime +7 deletes older files [OK]
- Using -mtime 7 deletes only files exactly 7 days old
- Misplacing the > $logfile line
- Incorrect mv command syntax
/var/log/myapp.log is renamed with the date, a new empty log is created, and logs older than 14 days are deleted. Which script snippet correctly performs this task?Solution
Step 1: Rename current log and create new empty log
backup="/var/log/myapp.log-$(date +%Y%m%d)" mv /var/log/myapp.log $backup > /var/log/myapp.log find /var/log -type f -name 'myapp.log-*' -mtime +14 -delete correctly moves the log file to a dated backup and creates a new empty log with >.Step 2: Delete logs older than 14 days
backup="/var/log/myapp.log-$(date +%Y%m%d)" mv /var/log/myapp.log $backup > /var/log/myapp.log find /var/log -type f -name 'myapp.log-*' -mtime +14 -delete uses find with -name 'myapp.log-*' and -mtime +14 to delete backups older than 14 days, which is correct.Final Answer:
backup="/var/log/myapp.log-$(date +%Y%m%d)" mv /var/log/myapp.log $backup > /var/log/myapp.log find /var/log -type f -name 'myapp.log-*' -mtime +14 -delete -> Option DQuick Check:
mv + new file + find -mtime +14 = correct rotation [OK]
- Using rm instead of recreating empty log
- Using -mtime 14 instead of +14 in find
- Copying instead of moving log file
Ready to prove it?
Pass the test and this pattern moves unknown
