Salve a tutti. Premetto che di script di bash me ne intendo pochino; mi hanno dato uno script che serve a ridurre la banda allocata ad una classe udp (creata mediante tc) di 0.3Mbps ogni 30 secondi.
Lo script è il seguente:
Codice PHP:
bash$ for x in $(seq 0.0 0.3 2.0) ; do
sleep 30
rate=$(echo $x | tr ',' '.' | awk '{print 2.0-$1}')
sudo tc class change ... rate ${rate}mbit
dunque la prima riga crea un ciclo for che ciclerà per valori di x da 0.0 a 2.0, incrementando di 0.3 il valore di x ad ogni ciclo.
la seconda riga farà semplicemente passare 30secondi
la terza riga calcola il valore da mettere nella variabile rate e (credo) che stampi qualcosa sulla shell che indica il cambiamento
la quarta riga aggiorna la classe tc relativa.
ora: così non funziona. la shell mi indica 2 errori.
1. Awk il carattere '?' non è riconosciuto (quindi qui credo ci sia qualche errore di sintassi nella terza riga).
2. un errore su tc.
Per il secondo mi son detto: bè, è normale, non gli dico quale classe cambiare...probabilmente devo sostituire i ... con i dettagli della classe. Quindi ho modificato così:
Codice PHP:
sudo tc class change dev lo parent 1:1 classid 1:20 rate ${rate}mbit
ma a questo punto mi da un altro errore: tc rate is classless.
Considerando che le classi create con tc son create correttamente, e che la classe alla quale togliere banda è identificata da classid 1:20 con parent 1:1, qualcuno sa dirmi come potrei operare?
grazie mille in anticipo