Uberspace erlaubt praktisch alle Möglichkeiten, die der Shellzugriff auf einen linuxbasierten Webserver bietet. Eines der wenigen expliziten Einschränkungen ist der lokale Speicherplatz, der auf 10GB beschränkt ist. Uberspace bietet den Befehl quota -gsl, um die Belegung im Auge zu behalten. Mit folgendem Shell-Skript kann man sich das noch etwas klarer ausgeben lassen:

#!/bin/bash
# Show space usage on uberspace
quotas=( $( quota -gsl | grep vda1 | tr -s ' ' ' ' | sed 's/M//g' ) )

blocks=${quotas[1]}
free=$(( ${quotas[2]}-${quotas[1]} ))
quota=${quotas[2]}
limit=${quotas[3]}
files=${quotas[4]}

echo
echo "Disk quotas for ${USER} ($files files):"
column -t <<< "Blocks: ${blocks}MB ($(( $blocks*100/$quota ))%)
Free: ${free}MB ($(( $free*100/$quota ))%)
Quota: ${quota}MB (100%)
Limit: ${limit}MB ($(( $limit*100/$quota ))%)"
echo

Das Ergebnis ist ein Ausgabe wie diese:

Disk quotas for username (23738 files):
Blocks:  652MB    (6%)
Free:    9588MB   (93%)
Quota:   10240MB  (100%)
Limit:   11264MB  (110%)

Wenn man diesen Skript regelmäßig aufrufen will, kann man ihn unter ~/bin/ ablegen. Wenn man bei jedem Login über den Verbrauch informiert werden will, kann man den Skript auch zur letzten Zeile in ~/.bash_profile hinzufügen.

Der Verbrauch beinhaltet die Größe der MySQL-Datenbanken, die auf einem separaten Server liegen. Verwaltet man viele Datenbanken und möchte die Größe dieser im Einzelnen verfolgen, bietet sich folgender Befehl an:

mysql -B -e "SELECT table_schema \"Databases:\", sum(data_length+index_length)/1024/1024 \"Size(MB):\" FROM information_schema.TABLES GROUP BY table_schema;"|column -t

Das sieht dann wie folgt aus:

Databases:          Size(MB):
username            1.49992085
username_db2        4.73629030
information_schema  0.00781250

Auch dieser Befehl kann bequemlichkeitshalber in einen Skript gepackt werden. In ~/.bash_profile sollte man ihn hingegen lieber nicht tun, da die Berechnung je nach Datenbankgröße und Auslastung einiges an Zeit in Anspruch nehmen kann und ~/.bash_profile zur Einrichtung der Benutzerumgebung auch bei automatischen Skripten eingebunden wird.

Will man nur die Gesamtgröße aller Datenbanken, reicht übrigens auch folgender kürzerer Befehl:

mysql -B -e "SELECT sum(data_length+index_length)/1024/1024 \"Databases(MB):\" FROM information_schema.TABLES;"