Ordner Größe auslesen und vergleichen

geretcondit
Goto Top
Hallo Liebe mit Administratoren/innen,

ich habe mal wieder ein Script Problem. Heute ist es aber mal Linux, ich habe ein simples Skript welches zu Monitoring Zwecken die Größe eines Ordners ausliest und diese mit einem eingegeben wert vergleichen soll.

Dies dient dazu damit wir feststellen können wie viel speicher ein Kunde bei uns belegt und ob eventuell sein "Paket" aufgestuft werden muss.

Das ganze läuft dann durch unsere Monitorring Software, etc...

Hier einmal das Skript:


Nun bekomme ich folgende Fehler Meldungen:

scripts/21727.sh: line 29: =: command not found
scripts/21727.sh: line 32: / 1024 : syntax error: operand expected (error token is "/ 1024 ")
scripts/21727.sh: line 33: / 1024 : syntax error: operand expected (error token is "/ 1024 ")
scripts/21727.sh: line 34 / 1024 : syntax error: operand expected (error token is "/ 1024 ")
scripts/21727.sh: line 37: =: command not found
scripts/21727.sh: line 40: [: ==: unary operator expected
scripts/21727.sh: line 43: [: -gt: unary operator expected
Quota not exceeded, used: , limit: 100 GB


Ich bin echt nicht eingearbeitet in Bash und könnte echt etwas Hilfe gebrauchen.

Danke im Voraus für jede antwort

Content-Key: 369558

Url: https://administrator.de/contentid/369558

Ausgedruckt am: 27.06.2022 um 05:06 Uhr

Mitglied: laster
laster 28.03.2018 um 16:21:06 Uhr
Goto Top
Hallo,

versuch doch mal die Befehle einzeln auszuführen, z.B. den in Zeile 29, dann siehst Du, wo es klemmt....

Gruß
LS
Mitglied: Cthluhu
Cthluhu 28.03.2018 um 16:25:11 Uhr
Goto Top
Hallo!

führt das Programm aus zum dem die Variable $FolderSize verweißt (mit den Argumenten

Was du da vermutlich möchtest ist eine Zuweisung, also
(ohne das führende Dollarzeichen)

mfg

Cthluhu
Mitglied: laster
laster 28.03.2018 um 16:39:34 Uhr
Goto Top
hallo,,
"du -b /verzeichnis" listet alle Unterverzeichnisse mit ihren belegten Platz auf.

probier mal du -b -s /verzeichnis...

A=/home
B=/user
C=$A+$B

echo $C --> "/home+/user"

desswegen, die Befehle mal einzeln testen.

vG
LS
Mitglied: laster
Lösung laster 28.03.2018 um 16:49:02 Uhr
Goto Top
Mitglied: GeretCondit
GeretCondit 13.02.2019 um 16:39:26 Uhr
Goto Top
Ich habe hier nochmal eine andere Lösung erarbeitet.



  1. check if all parameters are set
if [ -z "$1" ]; then
echo "Missing parameter for Customer!"
exit 1001
fi
if [ -z "$2" ]; then
echo "Missing parameter for partition!"
exit 1001
fi
if [ -z "$3" ]; then
echo "Missing parameter for size warning!"
exit 1001
fi

Var=1024

#Gets folder Size in Bytes
FolderSize=$(du -s -B1 $2$1 | awk '{print $1}');

#Converts the FolderSize Bytes to Human Readable
kilo=$(( $FolderSize/$Var))
mega=$(( $kilo/$Var ))
giga=$(( $mega/$Var ))



if (( "$giga" == "$3" )); then
echo "Warning Limit Reached, used: $giga GB, limit: $3 GB"
exit 1001
elif (("$giga" > "$3" )); then
echo "Folder Size has extennded over Maximum, used: $giga GB, limit: $3 GB"
exit 1001
else
echo "Quota not exceeded, used: $giga GB, limit: $3 GB"
exit 0
fi



Falls jemand mal genau das gleich suchen sollte :) face-smile