diff --git a/k3os/container_cleanup.sh b/k3os/container_cleanup.sh new file mode 100644 index 0000000..9b1d180 --- /dev/null +++ b/k3os/container_cleanup.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# ============================================================================== +# K3s Disk Cleaner +# Purpose: Prune unused container images and stopped containers to free disk space. +# ============================================================================== + +# Threshold: Only prune if disk usage is above this percentage (optional logic) +# Currently set to run unconditionally, but you can add checks using 'df'. + +echo "Starting K3s Cleanup Routine..." +echo "------------------------------------------------" + +# Check if crictl exists (standard in K3s/K3OS) +if ! command -v crictl &> /dev/null; then + echo "Error: crictl command not found." + exit 1 +fi + +echo "1. Removing stopped containers..." +# List stopped containers and remove them +# We suppress output for cleanliness, or remove > /dev/null to see details +crictl rm $(crictl ps -a | grep Exited | awk '{print $1}') 2>/dev/null + +if [ $? -eq 0 ]; then + echo " Stopped containers removed." +else + echo " No stopped containers found or error occurred." +fi + +echo "2. Pruning unused images..." +# This removes images not currently used by any container +crictl rmi --prune + +echo "------------------------------------------------" +echo "Disk Usage after cleanup:" +df -h /var/lib/rancher +echo "Done." \ No newline at end of file