initial
This commit is contained in:
56
dockernet-inspector.v1.sh
Normal file
56
dockernet-inspector.v1.sh
Normal file
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Script Name: dockernet-inspector.v1.sh
|
||||
# Beschreibung: Dockernet Inspector - Zeigt Details zu einem Docker-Netzwerk an (Netzwerktyp, Bridge-Interface, Subnet/Gateway, Interface-Status & Stats)
|
||||
# Verwendung: bash ./dockernet-inspector.v1.sh <docker-network-name>
|
||||
# Autor: Patrick Asmus
|
||||
# Web: https://www.cleveradmin.de
|
||||
# Git-Reposit.: https://git.techniverse.net/scriptos/dockernet-inspector.git
|
||||
# Version: 1.0.0
|
||||
# Datum: 17.02.2026
|
||||
# Modifikation: Initial
|
||||
#####################################################
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
NET="${1:-}"
|
||||
[[ -z "$NET" ]] && { echo "Usage: $0 <docker-network-name>"; exit 1; }
|
||||
|
||||
# 1) Netzwerk-ID und Bridge-Name separat holen (jeweils eigenes inspect)
|
||||
ID="$(docker network inspect "$NET" --format '{{.Id}}' 2>/dev/null || true)"
|
||||
[[ -z "$ID" ]] && { echo "Fehler: Netzwerk '$NET' nicht gefunden."; exit 2; }
|
||||
|
||||
BR_RAW="$(docker network inspect "$NET" --format '{{index .Options "com.docker.network.bridge.name"}}' 2>/dev/null || true)"
|
||||
|
||||
# 2) Falls kein eigener Bridge-Name: Standardname br-<ID[:12]>
|
||||
if [[ -z "$BR_RAW" || "$BR_RAW" == "<no value>" ]]; then
|
||||
IF="br-${ID:0:12}"
|
||||
else
|
||||
IF="$BR_RAW"
|
||||
fi
|
||||
|
||||
# 3) Subnet/Gateway
|
||||
SUBNET="$(docker network inspect "$NET" --format '{{(index .IPAM.Config 0).Subnet}}' 2>/dev/null || true)"
|
||||
GATEWAY="$(docker network inspect "$NET" --format '{{(index .IPAM.Config 0).Gateway}}' 2>/dev/null || true)"
|
||||
|
||||
# 4) Interface-Status & Stats
|
||||
state="unknown"; rxb=0; txb=0; rxp=0; txp=0
|
||||
if ip link show "$IF" &>/dev/null; then
|
||||
state="$(cat /sys/class/net/"$IF"/operstate 2>/dev/null || echo unknown)"
|
||||
rxb="$(cat /sys/class/net/"$IF"/statistics/rx_bytes 2>/dev/null || echo 0)"
|
||||
txb="$(cat /sys/class/net/"$IF"/statistics/tx_bytes 2>/dev/null || echo 0)"
|
||||
rxp="$(cat /sys/class/net/"$IF"/statistics/rx_packets 2>/dev/null || echo 0)"
|
||||
txp="$(cat /sys/class/net/"$IF"/statistics/tx_packets 2>/dev/null || echo 0)"
|
||||
else
|
||||
echo "WARN: Interface $IF existiert (noch) nicht auf dem Host."
|
||||
fi
|
||||
|
||||
cat <<OUT
|
||||
Docker-Netzwerk : $NET
|
||||
Driver : $(docker network inspect "$NET" --format '{{.Driver}}')
|
||||
Bridge-Interface : $IF
|
||||
Subnet/Gateway : ${SUBNET:--} / ${GATEWAY:--}
|
||||
OperState : $state
|
||||
RX bytes/packets : $rxb / $rxp
|
||||
TX bytes/packets : $txb / $txp
|
||||
OUT
|
||||
Reference in New Issue
Block a user