Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Script spazio disco

78 views
Skip to first unread message

Smith

unread,
Nov 6, 2015, 10:45:56 AM11/6/15
to
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

enricoT

unread,
Nov 8, 2015, 2:02:53 PM11/8/15
to
On 06/11/2015 16:45, Smith wrote:
> 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 %." ?

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

Smith

unread,
Nov 9, 2015, 8:43:02 AM11/9/15
to
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

enoquick

unread,
Nov 9, 2015, 8:54:00 AM11/9/15
to
$ case 34 in [1-3]*) echo 1;; [3-4]*) echo 2;; esac

1


E' ok, cosa c'è che non va secondo te ?


Yoda

unread,
Nov 9, 2015, 10:12:34 AM11/9/15
to
Addi' 06 nov 2015, Smith scrive:
> 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

Probabilmente fa casino ANCHE perche' sovrapponi il "3".

> 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?

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

Smith

unread,
Nov 9, 2015, 10:26:23 AM11/9/15
to
===================================
S T R A O R D I N A R I O
T I R I N G R A Z I O !!!!
===================================

Smith

unread,
Nov 9, 2015, 10:33:22 AM11/9/15
to
Il 09/11/2015 16:12, Yoda ha scritto:
> P.S. Puoi anche fargli scrivere qual e' la partizione di $SPAZIO.

Intendi aggiungendo questo ?

df -h | awk '{print $1,$5}'

Yoda

unread,
Nov 9, 2015, 10:55:31 AM11/9/15
to
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

0 new messages