Pular para o conteúdo

Calculos com ShellScript [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Calculos com ShellScript [RESOLVIDO]

Enviado em 02/07/2015 - 17:57h

Pessoal estou com problemas para executar os calculos de media, se alguem puder me dar uma ajudar.
A ideia é procurar quais IPS estao ativos na rede, executar o ping 3 vezes, se a media deste ping for > 100 ele salva esse IP
e depois ele executa mais 10 pings se a media destes 10 pings forem > 100 ele me envia um email ou sei lá.
Mas agora meu problema é as contas...

#!/bin/bash

##VARIAVEIS##
rede="192.168.17.0/24"
ativo_temp="/home/marcos/teste/ativos_temp.txt"
ip_ativos="/home/marcos/teste/ip_ativos.txt"
linhas="/home/marcos/teste/linhas.txt"
#Procura os IPs ativos e adiciona em um aquivo
nmap -sP $rede > $ativo_temp

#Adiciona em um arquivos somente os IPs
egrep -o "\w{3}\.\w{2,3}\.\w{2,3}\.\w{2,3}" $ativo_temp > $ip_ativos
#Conta a qntidade de IPs
egrep -c "\w{3}\.\w{2,3}\.\w{2,3}\.\w{2,3}" $ip_ativos > $linhas


cat $ip_ativos | while read ip
do
tempo_ping="/home/marcos/teste/tempo_$ip"
ips_ping="/home/marcos/teste/ping_$ip"

echo "IP:" $ip
ping -c3 $ip > $ips_ping

egrep -o "\w{2}\.\w{1}\ " $ips_ping > $tempo_ping
linha_soma=`egrep -c "\w{2}\.\w{1}\ " $ips_ping`
soma=`paste -s -d + $tempo_ping | bc`
if [ $linha_soma != 0 ]; then
media=$(( $soma / $linha_soma ));
fi
echo "A soma eh: " $soma
echo "A media eh: " $media
done

Responder tópico

2. Re: Calculos com ShellScript [RESOLVIDO]

Enviado em 02/07/2015 - 19:27h

Boa noite.

Dá uma olhada neste artigo que escrevi para ver se te ajuda -> http://www.vivaolinux.com.br/artigo/Algoritmos-em-Shell-Script
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782

3. Re: Calculos com ShellScript [RESOLVIDO]

Enviado em 03/07/2015 - 11:13h


Então meu erro ta dando no calculo da media le da a mensagem de erro:
Se eu colocar
if [ $linha_soma -ne 0 ]; then
media=$(($soma/$linha_soma));
fi
45.4/3: erro de sintaxe: operador aritmético inválido (token com erro é ".4/3")

mas se eu colocar
if [ $linha_soma -ne 0 ]; then
media=$((soma/linha_soma));
fi
169.9: erro de sintaxe: operador aritmético inválido (token com erro é ".9")


Travei aqui

4. Re: Calculos com ShellScript

Enviado em 03/07/2015 - 12:38h

marcosvinicius12 escreveu:


Então meu erro ta dando no calculo da media le da a mensagem de erro:
Se eu colocar
if [ $linha_soma -ne 0 ]; then
media=$(($soma/$linha_soma));
fi
45.4/3: erro de sintaxe: operador aritmético inválido (token com erro é ".4/3")

mas se eu colocar
if [ $linha_soma -ne 0 ]; then
media=$((soma/linha_soma));
fi
169.9: erro de sintaxe: operador aritmético inválido (token com erro é ".9")


Travei aqui
Ola

Tenta assim:


if [ $linha_soma -ne 0 ]; then
media=`expr $soma / $linha_soma`;
fi

5. Re: Calculos com ShellScript [RESOLVIDO]

Enviado em 03/07/2015 - 12:48h


Opa, retornou :
Valor da Soma : 45.5

expr: argumento não inteiro


6. Re: Calculos com ShellScript [RESOLVIDO]

Enviado em 03/07/2015 - 12:52h

marcosvinicius12 escreveu:


Opa, retornou :
Valor da Soma : 45.5

expr: argumento não inteiro

entao usa o bc:


if [ $linha_soma -ne 0 ]; then
media=`echo $soma / $linha_soma | bc` ;
fi

7. Re: Calculos com ShellScript [RESOLVIDO]

Enviado em 03/07/2015 - 12:54h


AEEEEEEE

AGORA DEU CERTO, OBRIGADO PELA AJUDA!!!!

MESMO

VLW

8. Re: Calculos com ShellScript [RESOLVIDO]

Enviado em 03/07/2015 - 12:55h

marcosvinicius12 escreveu:


AEEEEEEE

AGORA DEU CERTO, OBRIGADO PELA AJUDA!!!!

MESMO

VLW
NOIX!

NAo esquece de:

1- marcar o topico como resolvido
2 - ajudar a galera nos outros posts.


abs

:)

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder