Newsgroup: it.comp.os.linux.iniziare
Titolo: Script spazio disco

Ciao,
sto cercando di "fabbricare" uno script per visualizzare lo spazio su disco:
 
#!/bin/bash
# Questo script effettua un test molto semplice per verificare lo spazio 
su disco.
spazio=`df -h | awk '{print $5}' | grep % | grep -v Use | sort -n | tail 
-1 | cut -d "%" -f1 `
echo $spazio
 
case $spazio in
 
[1-3]*) echo "Tutto è tranquillo.";;
[3-4]*) echo "Inizia a pensare di cancellare qualcosa. C'è una 
partizione piena per $spazio %.";;
[5-6]*) echo "Meglio sbrigarsi con quel nuovo disco... Una partizione è 
piena al $spazio %.";;
[7-8]*) echo "Qui mi sommergono! C'è una partizione a $spazio %!";;
*) echo "Mi sembra di funzionare con una quantità inesistente di spazio 
su  disco...";;
esac
 
E' giusto che il risultato 34 mi restituisca il messaggio : "Tutto è 
tranquillo."
e non "Inizia a pensare di cancellare qualcosa. C'è una partizione piena 
per $spazio %." ?
 
Mi aiutate?
Grazie

 per $spazio %." ?
 
Puoi liberare un po' dello spazio allocato e riservato al sistema che è 
di default una percentuale del disco.
Più il disco è grande più puoi ridurre la percentuale, detto questo, 
bleachbit per esempio è un cleaner di porcheria su disco molto utile e 
fatto anche questo ricorda la percentuale disco di sistema, quando il 
disco è pieno, non puoi più fare nulla tranne cancellare.
 
ciao e buon linux


Mi sono espresso male.
Volevo sapere perchè l'espressione regolare nel costrutto case non funziona:
 
====================================================================================
[1-3]*) echo "Tutto è tranquillo.";;
[3-4]*) echo "Inizia a pensare di cancellare qualcosa. C'è una 
partizione piena per $spazio %.";;
[5-6]*) echo "Meglio sbrigarsi con quel nuovo disco... Una partizione è 
piena al $spazio %.";;
[7-8]*) echo "Qui mi sommergono! C'è una partizione a $spazio %!";;
==========================================================================
 
Grazie 1000


$ case 34 in [1-3]*) echo 1;; [3-4]*) echo 2;; esac
 
1
 
 
E' ok, cosa c'è che non va secondo te ?
 
 

 Mi aiutate?
 
Io farei cosi':
 
======================
#!/bin/bash
 
SPAZIO="$(df --output=pcent | tr -d '%' | sort -n | tail -n 1)"
 
if [ "$SPAZIO" -le "30" ]; then
echo
echo -e "\033[36mTutto è tranquillo\033[m"
echo
echo "Spazio disco minimo = $SPAZIO"
echo
 
else
if [ "$SPAZIO" -le "40" ]; then
echo
echo -e "\033[36mIniziua a pensare...\033[m"
echo
echo "Spazio disco minimo = $SPAZIO"
echo
 
#==================================================================
#================> IDEM fino a Mi sommergono!! <===================
#=============> metti tutte le intermedie che vuoi <===============
#==================================================================
 
else
if [ "$SPAZIO" -le "80" ]; then
echo
echo -e "\033[33mIniziua a pensare...\033[m"
echo
echo "Spazio disco minimo = $SPAZIO"
echo
 
else
if [ "$SPAZIO" -gt "80" ]; then
echo
echo -e "\033[1;31mMi sommergono!!\033[m"
echo
echo "Spazio disco minimo = $SPAZIO"
echo
 
fi; fi; .. CONTA in numero giusto! ... ;fi
 
# Questo script effettua un test molto semplice per verificare lo spazio
su disco.
===========================
 
Bada agli escape ANSI, a Mi sommegono ho usato il rosso, a 80 il bruno,
gli altri in verde Veronese marcio.
 
P.S. Puoi anche fargli scrivere qual e' la partizione di $SPAZIO.
 
 
-- 
Tanti saluti
 


===================================
S T R A O R D I N A R I O
T I   R I N G R A Z I O !!!!
===================================

 P.S. Puoi anche fargli scrivere qual e' la partizione di $SPAZIO.
 
Intendi aggiungendo questo ?
 
df -h | awk '{print $1,$5}'
 

Addi' 09 nov 2015, Smith scrive:

Mo.. farei dare df una seconda volta cosi':
df --output=pcent,target | grep $SPAZIO
 
come comando al posto della riga:
echo "Spazio minimo = $SPAZIO"
 
cioe' la sostituisci con queste due:
echo -n "Spazio minimo e partizione: "
df --output=pcent,target | grep $SPAZIO
 
cosi' magari ti prende anche 2 o piu' partizioni tutte a pari livello.
 
Se vuoi lo spazio *sempre* in rosso, aggiungi a grep: --color=auto.
 
Occhio che tutte queste non le ho testate, vedi tu.. ma tanto
non mordono!
 
 
-- 
Tanti saluti