66 lines
1.7 KiB
Bash
Executable File
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 ""
|