galaa
12-10-2006, 18:45
Salve a tutti, spero che questa sia la sezione giusta x il problema che ho...
Allora io devo realizzare questo script
LOAD.SH
Se il carico del sistema è inferiore ad una soglia specificata come primo
parametro dello script, lancia il comando specificato come secondo parametro.
Altrimenti, con at, rischedula il test dopo 2 minuti, e procede così finchè non
riesce a lanciare il comando.
MIASOLUZIONE(veramente è del mio prof)
#!/bin/bash
#
# controllo del numero di parametri
#
if [ $# -lt 2 ] ; then
echo Sintassi: $0 '<soglia> <comando'
exit 1
fi
#
# rimozione del punto decimale nella soglia
#
soglia=`echo $1 | sed -e 's/\.//'`
#
# isolamento del carico medio negli ultimi 5 minuti
# e rimozione del punto decimale e della virgola
#
carico=`uptime | awk '{ print $8; }' | sed -e 's/[\,\.]//g'`
echo -n "Il carico e' $carico, la soglia $soglia, "
if [ $carico -le $soglia ] ; then
echo eseguo $2
$2 >> /home/xubuntu/output
else
echo rimando esecuzione di $2 >> /home/xubuntu/output
echo `pwd`/$0 $1 $2 | at now + 1 minutes
fi
Non funziona?!?!
Quando è nel ramo else il processo viene inserito nella coda (ho verificato con atq) ma poi sul file output non appare niente
Qualcuno può aiutarmi??
galaa
Allora io devo realizzare questo script
LOAD.SH
Se il carico del sistema è inferiore ad una soglia specificata come primo
parametro dello script, lancia il comando specificato come secondo parametro.
Altrimenti, con at, rischedula il test dopo 2 minuti, e procede così finchè non
riesce a lanciare il comando.
MIASOLUZIONE(veramente è del mio prof)
#!/bin/bash
#
# controllo del numero di parametri
#
if [ $# -lt 2 ] ; then
echo Sintassi: $0 '<soglia> <comando'
exit 1
fi
#
# rimozione del punto decimale nella soglia
#
soglia=`echo $1 | sed -e 's/\.//'`
#
# isolamento del carico medio negli ultimi 5 minuti
# e rimozione del punto decimale e della virgola
#
carico=`uptime | awk '{ print $8; }' | sed -e 's/[\,\.]//g'`
echo -n "Il carico e' $carico, la soglia $soglia, "
if [ $carico -le $soglia ] ; then
echo eseguo $2
$2 >> /home/xubuntu/output
else
echo rimando esecuzione di $2 >> /home/xubuntu/output
echo `pwd`/$0 $1 $2 | at now + 1 minutes
fi
Non funziona?!?!
Quando è nel ramo else il processo viene inserito nella coda (ho verificato con atq) ma poi sul file output non appare niente
Qualcuno può aiutarmi??
galaa