[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Array e atribuição de valores
From: |
Fernando |
Subject: |
Array e atribuição de valores |
Date: |
Wed, 30 Sep 2009 16:40:15 -0000 |
User-agent: |
eGroups-EW/0.82 |
Boa tarde pessoal.
Tenho algumas dúvidas sobre arrays e atribuição de valores.
Este é o script que estou desenvolvendo:
#!/bin/bash
start(){
NCores=$(cat /proc/cpuinfo | grep 'cpu cores' | uniq | awk '{ print $4 }'
for Cores in $( seq 0 $(( NCores - 1 ))); do
CPU[$Cores]=$(mpstat 1 -P "$Cores" 1 | tail -1 | tr ',' ' '| awk '{ print $3 }'
let "AVG = $AVG + ${CPU[$Cores]}"
echo "Elemento [$Cores]: ${CPU[$Cores]} = $AVG" >> Cores.txt
done
}
case "$1" in
'start')
start
;;
*)
echo "Use: $0 {start}"
exit 1
esac
Este código funciona corretamente sendo executado no terminal, onde obtenho a
seguinte saída:
#cat Cores.txt
Elemento [0]: 37 = 37
Elemento [1]: 36 = 73
Elemento [2]: 5 = 78
Elemento [3]: 35 = 113
Agendando a execução deste script pelo cron diretamente em /etc/crontab:
* * * * * root /etc/init.d/Monitor start > /dev/null
...obtenho a seguinte saída:
Elemento [0]: 33.61 =
Elemento [1]: 33.64 =
Elemento [2]: 98.00 =
Elemento [3]: 14.68 =
Algumas coisas que observei:
- No script, faço a remoção da vírgula (... tr ',' ' ' ...) e os valores aqui
aparecem com ponto (33.61)
- Os valores não são somados
Qual é a explicação para esta diferença entre o root executar diretamente no
terminal e executar através do cron?
A soma não ocorre porque o valor está em outro shell?
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Array e atribuição de valores,
Fernando <=