chore: add instrustions for purge job
This commit is contained in:
parent
7b41a3831e
commit
cc3ad053e7
1 changed files with 107 additions and 0 deletions
107
purge-job.cron
Normal file
107
purge-job.cron
Normal file
|
@ -0,0 +1,107 @@
|
|||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
# Script: purge-cozy.sh
|
||||
# Purpose: Clean up temporary files and logs at midnight
|
||||
# This script should be scheduled as a cron job to run daily at midnight
|
||||
|
||||
# Set working directory
|
||||
cd /path/to/your/script/directory || exit 1
|
||||
|
||||
# Define log file
|
||||
LOG_FILE="/var/log/purge-cozy.log"
|
||||
|
||||
# Function to log messages
|
||||
log_message() {
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
# Start logging
|
||||
log_message "Starting purge-cozy.sh script execution"
|
||||
|
||||
# Remove temporary files older than 7 days
|
||||
log_message "Removing temporary files older than 7 days"
|
||||
find /tmp -type f -mtime +7 -delete 2>>"$LOG_FILE" || log_message "Warning: find command failed"
|
||||
|
||||
# Clean up log files older than 30 days
|
||||
log_message "Cleaning up log files older than 30 days"
|
||||
find /var/log -name "*.log" -mtime +30 -delete 2>>"$LOG_FILE" || log_message "Warning: log cleanup failed"
|
||||
|
||||
# Remove cache directories (example for user cache)
|
||||
log_message "Clearing user cache directories"
|
||||
find /home -type d -name ".cache" -mtime +7 -exec rm -rf {} + 2>>"$LOG_FILE" || log_message "Warning: cache cleanup failed"
|
||||
|
||||
# Optional: Clean up specific application directories
|
||||
# log_message "Cleaning up cozy application data"
|
||||
# find /var/lib/cozy -type f -mtime +30 -delete 2>>"$LOG_FILE" || log_message "Warning: cozy data cleanup failed"
|
||||
|
||||
# Remove empty directories (excluding important system directories)
|
||||
log_message "Removing empty directories"
|
||||
find /tmp -type d -empty -delete 2>>"$LOG_FILE" || log_message "Warning: empty directory cleanup failed"
|
||||
|
||||
# Display disk usage after cleanup
|
||||
log_message "Disk usage after cleanup:"
|
||||
df -h | tee -a "$LOG_FILE"
|
||||
|
||||
# End logging
|
||||
log_message "purge-cozy.sh script execution completed"
|
||||
```
|
||||
|
||||
To set up the cron job:
|
||||
|
||||
1. First, make your script executable:
|
||||
```bash
|
||||
chmod +x purge-cozy.sh
|
||||
```
|
||||
|
||||
2. Edit your crontab:
|
||||
```bash
|
||||
sudo crontab -e
|
||||
```
|
||||
|
||||
3. Add this line to run the script every midnight:
|
||||
```bash
|
||||
0 0 * * * /path/to/purge-cozy.sh
|
||||
```
|
||||
|
||||
4. Save and exit (in nano editor: Ctrl+X, then Y, then Enter)
|
||||
|
||||
Alternative method using systemd timer (modern approach):
|
||||
```bash
|
||||
# Create a service file: /etc/systemd/system/purge-cozy.service
|
||||
[Unit]
|
||||
Description=Clean up temporary files and logs
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/path/to/purge-cozy.sh
|
||||
User=root
|
||||
```
|
||||
|
||||
```bash
|
||||
# Create a timer file: /etc/systemd/system/purge-cozy.timer
|
||||
[Unit]
|
||||
Description=Run purge-cozy script daily at midnight
|
||||
Requires=purge-cozy.service
|
||||
|
||||
[Timer]
|
||||
OnCalendar=daily
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
```
|
||||
|
||||
```bash
|
||||
# Enable and start the timer
|
||||
sudo systemctl enable purge-cozy.timer
|
||||
sudo systemctl start purge-cozy.timer
|
||||
```
|
||||
|
||||
Key considerations:
|
||||
- Replace `/path/to/your/script/directory` with actual path
|
||||
- Adjust cleanup rules based on your specific needs
|
||||
- Ensure script has proper permissions to access directories
|
||||
- Test script manually before scheduling it
|
||||
- Monitor log file for any errors during execution
|
Loading…
Reference in a new issue