PDA

Visualizza la versione completa : [BASH] Eseguire un'operazione ad intervalli periodici


valer_85
22-05-2006, 13:21
eccomi qua con un altro problema...può sembrare facile ma nn ne ho idea...
come faccio a eseguire una certa operazione ogni X secondi ?
grazie

andbin
22-05-2006, 13:44
Originariamente inviato da valer_85
eccomi qua con un altro problema...può sembrare facile ma nn ne ho idea...
come faccio a eseguire una certa operazione ogni X secondi ?Cosa devi fare di preciso? E in che modo esattamente?
Devi avviare uno script ogni tot di tempo? O devi fare in modo che all'interno di uno script una certa operazione venga fatta ogni tot di tempo?

alka
22-05-2006, 13:59
Siamo sicuri che, a questo livello, non sia più corretto scrivere nel forum dedicato a Linux piuttosto che su Programmazione? :master:

valer_85
22-05-2006, 14:03
Originariamente inviato da andbin
Cosa devi fare di preciso? E in che modo esattamente?
Devi avviare uno script ogni tot di tempo? O devi fare in modo che all'interno di uno script una certa operazione venga fatta ogni tot di tempo?

beh tu come faresti? forse nel mio caso è meglio all'interno dello script... si dai, ogni tot di tempo eseguire qualcosa all'interno dello script...

andbin
22-05-2006, 14:18
Originariamente inviato da valer_85
beh tu come faresti? forse nel mio caso è meglio all'interno dello script... si dai, ogni tot di tempo eseguire qualcosa all'interno dello script... Mah ... ripeto, dipende molto da cosa e come devi fare ...

Un esempio banale:

while [ 1 ]
do
echo "Elaborazione ..."

# .... operazioni ....

sleep 10
done

valer_85
22-05-2006, 14:22
ecco il problema, così capisci...

ogni tot secondi devo controllare la grandezza di una cartella... se è maggiore di un valore passato allo script, allora devo cancellare tutti i file con una certa estensione ( le estensioni da cancellare sono contenute in un file .txt) ...

grazie

andbin
22-05-2006, 14:31
Originariamente inviato da valer_85
ecco il problema, così capisci...

ogni tot secondi devo controllare la grandezza di una cartella... se è maggiore di un valore passato allo script, allora devo cancellare tutti i file con una certa estensione ( le estensioni da cancellare sono contenute in un file .txt) ...Mah ... non mi sembra difficile.
Ti posto un esempio (poi adattalo/continualo tu):

DIR=$1
MAXSIZE=$2

while true
do
set `du -s $DIR 2>/dev/null`

SIZE=$1

if [ $SIZE -gt $MAXSIZE ]
then
# ... qui cancella i file ...
fi

sleep 10
done

valer_85
22-05-2006, 14:34
benissimo! grazie mille, ora c guardo poi t kiederò se ho bisogno.
grazie :D ciao

valer_85
22-05-2006, 14:41
cosa fa questo comando?

du -s $DIR 2>/dev/null ? provo ad indovinare: serve per far si che il secondo parametro passato allo script non venga "sovrascritto" dal set?

andbin
22-05-2006, 14:57
Originariamente inviato da valer_85
cosa fa questo comando?

du -s $DIR 2>/dev/null ?Ma il set con du non te l'ho già spiegato solo qualche giorno fa??? :fagiano:


Originariamente inviato da valer_85
provo ad indovinare: serve per far si che il secondo parametro passato allo script non venga "sovrascritto" dal set? No, "2>/dev/null" serve, in generale, per ridirezionare lo standard-error sul /dev/null, in pratica serve a "buttare via" qualunque informazione di errore che du potrebbe stampare se ci fossero sotto-cartelle non accessibili o roba del genere.

Loading