Files
dao_hades/servers/hephaestus/ark/usr/local/bin/cleanup.sh
2025-12-07 17:31:31 +00:00

63 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# System Cleanup Script
# Run this script via cron to maintain system cleanliness
# Set variables
LOG_FILE="/var/log/system-cleanup.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')
# Function to log messages to both console and file
log_message() {
echo "[$DATE] $1" | tee -a "$LOG_FILE"
}
log_message "Starting system cleanup..."
# Docker System Cleanup
log_message "Cleaning up Docker system..."
docker system prune -a -f --volumes | while read -r line; do
log_message "Docker: $line"
done
# Clean up old Docker images not used in last 30 days
log_message "Removing unused Docker images older than 30 days..."
docker image prune -a -f --filter "until=720h" | while read -r line; do
log_message "Docker images: $line"
done
# System Package Cleanup
log_message "Cleaning up apt packages..."
apt-get autoremove -y | while read -r line; do
log_message "APT autoremove: $line"
done
apt-get autoclean -y | while read -r line; do
log_message "APT autoclean: $line"
done
# Clean up old logs (keep last 7 days)
log_message "Cleaning up old system logs..."
find /var/log -name "*.log" -type f -mtime +7 -delete 2>/dev/null
find /var/log -name "*.log.*" -type f -mtime +7 -delete 2>/dev/null
# Clean up journal logs (keep last 7 days)
log_message "Cleaning up journal logs..."
journalctl --vacuum-time=7d | while read -r line; do
log_message "Journal cleanup: $line"
done
# Clean up temporary files
log_message "Cleaning up temporary files..."
find /tmp -type f -atime +7 -delete 2>/dev/null
find /var/tmp -type f -atime +7 -delete 2>/dev/null
# Show disk usage after cleanup
log_message "Disk usage after cleanup:"
df -h | while read -r line; do
log_message "Disk: $line"
done
log_message "System cleanup completed."