Explorer
/tmp/analyse-werkstandard.sh
← Zurück ↓ Download
#!/usr/bin/env bash
set -u
base=/opt/struktur/hermes-werkstandard
out=/tmp/werkstandard-analyse
mkdir -p "$out"
{ hostname; whoami; date -Is; } > "$out/host.txt"
find "$base" -maxdepth 5 -printf '%y|%s|%TY-%Tm-%Td %TH:%TM:%TS|%p\n' 2>/dev/null | sort > "$out/files.txt"
du -ah "$base" 2>/dev/null | sort -h > "$out/du.txt"
stat "$base" > "$out/stat.txt" 2>&1
sha256sum $(find "$base" -type f 2>/dev/null) > "$out/sha256.txt" 2>/dev/null || true
find "$base/data" -type f \( -iname '*.db' -o -iname '*.sqlite' -o -iname '*.sqlite3' -o -iname '*.json' -o -iname '*.yaml' -o -iname '*.yml' -o -iname '*.md' -o -iname '*.log' -o -iname '*.txt' \) -print 2>/dev/null > "$out/data-types.txt"
cp "$base/docker-compose.yml" "$out/docker-compose.yml" 2>/dev/null || true
docker ps -a --filter name=hermes-werkstandard > "$out/container.txt"
docker inspect hermes-werkstandard > "$out/inspect.json" 2>/dev/null || true
docker volume ls > "$out/volumes.txt"
docker network ls > "$out/networks.txt"
find "$base/data" -type f -printf '%s %p\n' 2>/dev/null | sort -nr | head -100 > "$out/largest.txt"
for db in $(find "$base/data" -type f \( -iname '*.db' -o -iname '*.sqlite' -o -iname '*.sqlite3' \) 2>/dev/null); do
  echo "DB=$db"
  stat "$db"
  sqlite3 "file:$db?mode=ro" '.tables' 2>/dev/null || true
  sqlite3 "file:$db?mode=ro" 'select name, type from sqlite_master where type in ("table","index") order by type,name;' 2>/dev/null || true
done > "$out/sqlite.txt"
find "$base/data" -type d \( -iname '*session*' -o -iname '*skill*' -o -iname '*profile*' -o -iname '*memory*' -o -iname '*job*' -o -iname '*cron*' -o -iname '*persona*' \) -print 2>/dev/null > "$out/special-dirs.txt"
grep -RIlE 'API[_-]?KEY|TOKEN|PASSWORD|SECRET|OAUTH|PRIVATE KEY' "$base/data" 2>/dev/null > "$out/secret-candidates.txt" || true
echo READY