shell-script-pt
[Top][All Lists]
Advanced

[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?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]