Files
portainer-core/scripts/disk-usage.sh
T

66 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Disk Usage Report Script
# Shows detailed disk usage for SSD and HDD
echo "=== Disk Usage Report ==="
echo "$(date)"
echo ""
# Overall disk usage
echo "[Overall Disk Usage]"
df -h / /mnt/media 2>/dev/null || df -h /
echo ""
# SSD usage breakdown
echo "[SSD - Docker Configs] (/home/jpmschweitzer/docker-data)"
if [ -d "/home/jpmschweitzer/docker-data" ]; then
du -sh /home/jpmschweitzer/docker-data/* 2>/dev/null | sort -hr | head -10
else
echo "Directory not found"
fi
echo ""
# HDD usage breakdown
echo "[HDD - Media Content] (/mnt/media)"
if [ -d "/mnt/media" ]; then
du -sh /mnt/media/* 2>/dev/null | sort -hr
else
echo "⚠️ Media drive not mounted!"
fi
echo ""
# Docker system usage
echo "[Docker System Usage]"
docker system df
echo ""
# Largest containers
echo "[Largest Containers]"
docker ps --size --format "table {{.Names}}\t{{.Size}}" | head -11
echo ""
# Warn if getting full
ssd_percent=$(df /home/jpmschweitzer/docker-data 2>/dev/null | awk 'NR==2 {print $5}' | sed 's/%//')
hdd_percent=$(df /mnt/media 2>/dev/null | awk 'NR==2 {print $5}' | sed 's/%//')
echo "[Warnings]"
if [ -n "$ssd_percent" ] && [ "$ssd_percent" -gt 85 ]; then
echo "⚠️ SSD is ${ssd_percent}% full - consider cleanup!"
fi
if [ -n "$hdd_percent" ] && [ "$hdd_percent" -gt 85 ]; then
echo "⚠️ HDD is ${hdd_percent}% full - consider cleanup!"
fi
if [ -z "$hdd_percent" ]; then
echo "❌ Media drive not mounted at /mnt/media!"
fi
# Suggestions
echo ""
echo "[Cleanup Suggestions]"
echo "- Clean Docker: ./scripts/cleanup.sh"
echo "- Remove old images: docker image prune -a"
echo "- Check large files: du -sh /mnt/media/* | sort -hr"
echo ""