Não consigo enviar o email [RESOLVIDO]

1. Não consigo enviar o email [RESOLVIDO]

Aleff Rodrigues
aleff25

(usa CentOS)

Enviado em 03/08/2016 - 16:56h

Sou novato no linux e to aprendendo ainda muita coisa. Eu fiz um shell e estou com problemas para rodar ele. Ele serveria para me enviar um email quando ele estivesse com o HD cheio. Mas, nao esta funcionando alguem pode me ajudar. O resutado sempre é "Espaço de sobra" mesmo alterando os valores. Penso eu que pode ser que a variavel num não é inteira e por isso nao faz a comparação no IF
#Comando para ver a porcentagem de uso do hd
NUM= df -h | awk '{print $5}' | sed -n -e 2p | cut -c1-2
echo $NUM
read $NUM

#Se esse numero for maior do que 70% ele mandara um email

if [ $NUM > 70 ] then
echo "O HD está enxendo"
echo "Teste" | mail -s "O HD da Rofer está com mais com mais de uso " aleff_rmo@hotmail.com

else
echo "Espaço de sobra"
fi





  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 03/08/2016 - 17:41h

aleff25 escreveu:

Sou novato no linux e to aprendendo ainda muita coisa. Eu fiz um shell e estou com problemas para rodar ele. Ele serveria para me enviar um email quando ele estivesse com o HD cheio. Mas, nao esta funcionando alguem pode me ajudar. O resutado sempre é "Espaço de sobra" mesmo alterando os valores. Penso eu que pode ser que a variavel num não é inteira e por isso nao faz a comparação no IF
#Comando para ver a porcentagem de uso do hd
NUM= df -h | awk '{print $5}' | sed -n -e 2p | cut -c1-2
echo $NUM
#read $NUM

#Se esse numero for maior do que 70% ele mandara um email

if [ $NUM > 70 ] then
echo "O HD está enxendo"
echo "Teste" | mail -s "O HD da Rofer está com mais com mais de uso " aleff_rmo@hotmail.com

else
echo "Espaço de sobra"
fi



Boa tarde aleff25.
Sim, tem erros no seu script.....
01 - NUM=$(df -h | awk '{print $5}' | sed -n -e 2p | cut -c1-2)
OTIMIZADO:
NUM=$(df -h | awk 'NR==8 {print $5}' |cut -c1-2) #awk pegando a linha pretendida
02 - Esse teste (if [ $NUM > 70 ] then), não EXISTE, faça
[ $NUM -gt 70 ];then
.
.
else
.
.
fi
Ou
(($NUM>70));then
.
.
.

Note que tem ";" antes do "then".
É Isso....
Se a RESPOSTA foi ÚTIL e lhe ajudou, marque-a como A MELHOR . . . :)

att.:
marcelo oliver

3. Re: Não consigo enviar o email

thinomar
thinomar

(usa Linux Mint)

Enviado em 03/08/2016 - 17:56h

Provavelmente é exatamente oq o msoliver disse. Apenas uma dica: evite fazer vários redirecionamentos de saída de comando. Sempre que possível, explore ao máximo cada ferramenta para evitar uma quantidade excessiva de redirecionamentos.

Exemplo: Pode evitar utilizar os comandos sed e cut daqui:
NUM=$(df -h | awk '{print $5}' | sed -n -e 2p | cut -c1-2) 

Utilizando apenas o awk:
NUM=$(df -h | awk 'NR==2 { gsub("%", "", $5) ; print $5}') 

Onde NR==2 diz que a operação deve ser realizada onde o número da linha (Number of Record) for igual a 2, gsub substitui o primeiro valor (%) pelo segundo (nada) quando encontrá-lo dentro do terceiro ($5, que é o quinto campo).
--
-I've been talking to the main computer
-And...?
-It hates me


4. Re: Não consigo enviar o email [RESOLVIDO]

Aleff Rodrigues
aleff25

(usa CentOS)

Enviado em 03/08/2016 - 17:58h

Dessa forma que vc me mostrou marcelo realmente agora a comparação é feita, valeu por ter corrigido. Ja me ajudou muito.
mas agora apareceu outro erro rsrs
"line 3: read: `84': not a valid identifier"




5. Re: Não consigo enviar o email

thinomar
thinomar

(usa Linux Mint)

Enviado em 03/08/2016 - 17:59h

O que tem na terceira linha do script?
--
-I've been talking to the main computer
-And...?
-It hates me


6. Re: Não consigo enviar o email [RESOLVIDO]

Aleff Rodrigues
aleff25

(usa CentOS)

Enviado em 03/08/2016 - 18:05h

Achei o erro aqui, tinha colocado READ, mas ele é um comando que tem que digitar né, retirei ele e funcionou agora
Valeu por terem ajudado !!!
:D


7. Re: Não consigo enviar o email [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 03/08/2016 - 19:04h

aleff25 escreveu:

Achei o erro aqui, tinha colocado READ, mas ele é um comando que tem que digitar né, retirei ele e funcionou agora
Valeu por terem ajudado !!!
:D


Alef, no meu exemplo, comentei esse "READ" . . .
Att.:
Marcelo Oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts