ubuntu e script per naviga 3

xeruwere

Digital-Forum Senior Master
Registrato
7 Novembre 2005
Messaggi
1.019
Località
BS provincia
vorrei creare uno script da avviare appena mi connetto con kppp con naviga 3 in modo che mi controlli Mb consumati e a 48 Mb mi disconnetta e mi spenga il pc. io ho provato con questo:

#!/bin/bash

LOG=$HOME/.naviga3.log
PPPSTATS="/usr/sbin/pppstats ppp0"
DATA=`date '+%d/%m/%Y'`

if [ -w $LOG -a `cat $LOG | cut -f1 -d' '` = $DATA ]; then
TRAFFICO_OLD=`cat $LOG | awk '{print $2}'`
fi

while :
do
TRAFFICO=$((TRAFFICO_OLD \
+ `$PPPSTATS | tail -n 1 | awk '{print $1}'` \
+ `$PPPSTATS | tail -n 1 | awk '{print $7}'`))

echo "$DATA $TRAFFICO" > $LOG

if [ $TRAFFICO -ge 49283072 ]; then
killall pppd
sudo shutdown -h now
exit;
fi

sleep 15
done

sembra funzioni ma il comando shutdown -h now ha bisogno della password per essere eseguito, non c'è un modo per evitare che la chieda?
 
Ultima modifica:
Prova a sostituire 'shutdown -h' con 'init 0' oppure a rendere shutdown eseguibile a tutti gli utenti (o fai girare lo script come root) ed elimina il sudo dallo script
 
s8un3no ha scritto:
Prova a sostituire 'shutdown -h' con 'init 0' oppure a rendere shutdown eseguibile a tutti gli utenti (o fai girare lo script come root) ed elimina il sudo dallo script
ho provato entrambe le soluzioni ma raggiunta la soglia di Mb mi si disconnette ma non si spegne.... magari potreste modificarlo voi il file che ho incollato? probabilmente dimentico qualcosa, qualche ; o qualche stronzata del genere....
grazie mille
 
in quest'ordine:

1) togli il sudo allo shutdown;
2) fai in modo che sia root ad eseguire tutto lo script

3) se non funziona, vai nel syslog e controlla come mai non ti viene eseguita la riga con lo shutdown

(...)
killall pppd
shutdown -h now
exit;
fi
(...)
 
per fare eseguire lo script a root?

ho provato cosi:

#!/bin/bash

LOG=$HOME/.naviga3.log
PPPSTATS="/usr/sbin/pppstats ppp0"
DATA=`date '+%d/%m/%Y'`
sudo -s

if [ -w $LOG -a `cat $LOG | cut -f1 -d' '` = $DATA ]; then
TRAFFICO_OLD=`cat $LOG | awk '{print $2}'`
fi

while :
do
TRAFFICO=$((TRAFFICO_OLD \
+ `$PPPSTATS | tail -n 1 | awk '{print $1}'` \
+ `$PPPSTATS | tail -n 1 | awk '{print $7}'`))

echo "$DATA $TRAFFICO" > $LOG

if [ $TRAFFICO -ge 49283072 ]; then
shutdown -h now
killall pppd
exit;
fi

sleep 15
done

ma non funziona lo stesso.... si disconnette e basta non si spegne il pc!
 
Ultima modifica:
Parlo da apprendista: il tuo problema è che non si spegne il pc oppure vuoi una funzione che disconnetta internet (naviga3) e subito dopo faccia shutdown in automatico?
Comunque complimenti per l'idea di disconnettere a 48mb consumati ;)
 
controlla nel syslog il perchè non viene eseguito lo shutdown.
Il syslog nella ubuntu dovrebbe essere in /var/log/.

Eventualmente - come ha correttamente suggerito s8un3no - sostituisci "shutdown -h now" con "init 0".

Ciauz
 
allora, lo script ora come ora fa disconnettere ma non spegne il pc.
io vorrei che consumati 48 Mb mi disconnette e mi spegne il pc. insomma deve staccarsi da intenet perchè se noi pago a volontà e poi deve spegnere il pc visto che se sconnesso non mi serve piu acceso....

stasera provo a controllare il syslog, ci ho provato ieri ma non lo trovavo....
con "init 0" ho gia provato ma è la stessa cosa come con "shutdown -h now"

grazie ragazzi x l'aiuto
 
ho provato a guardare il syslog ma non c'è traccia dei comandi ne per disconnettersi (che funzione) ne di spegnere il pc (che non va)
 
ho risolto cosi:

#!/bin/bash

LOG=$HOME/.naviga3.log
PPPSTATS="/usr/sbin/pppstats ppp0"
DATA=`date '+%d/%m/%Y'`

if [ -w $LOG -a `cat $LOG | cut -f1 -d' '` = $DATA ]; then
TRAFFICO_OLD=`cat $LOG | awk '{print $2}'`
fi

while :
do
TRAFFICO=$((TRAFFICO_OLD \
+ `$PPPSTATS | tail -n 1 | awk '{print $1}'` \
+ `$PPPSTATS | tail -n 1 | awk '{print $7}'`))

echo "$DATA $TRAFFICO" > $LOG

if [ $TRAFFICO -ge 49283072 ]; then
killall pppd
sudo bash ./spegni.sh
exit;
fi

sleep 15
done

e nella stessa cartella home/mionome/ ho fatto un altro script chiamato spegni.sh fatto cosi:

#!/bin/bash

sudo shutdown -h now

e funziona!!!!!!!!!!!!!!!!!!!!!!!!!!!!
solo che ora lo script principale non si avvia piu da solo con kppp ma devo eseguirlo io nel terminale.....
 
anzi......... il problema stava solo che per funzionare devo farlo eseguire io a mano nel terminale e non puo essere attivato in automatico da kppp quando mi connetto...
 
A meno che non lo traduci, non credo proprio che giri così come è ...
Ci sono dei programmi che simulano sotto windows l'awk, il cat e gli altri comandi dello unix/shell. A mio avviso faresti prima a riscrivertelo ...
Ciao
 
Indietro
Alto Basso