Como criar um script perl que verifica as estatísticas do sistema (CPU, RAM, HDD) e envia uma mensagem de alerta? [fechadas]

0

O script é para adicionar à guia cron. O fluxo do script de shell deve ser assim. 1. Verifica o estado da CPU. 2. Verifica o uso da RAM. 3. Verifica o uso do HDD. 4. Envia uma mensagem de alerta para os destinatários, se algum deles estiver acima do valor limite. (diga 90%)

@matches=grep {$_ >90} (df -H=~/(\S+%)/g);

print "@matches\n";

Isso retorna a saída de 'df _H' se estiver acima de 90%

para RAM,

free | grep Mem | awk '{print $3/$2 * 100.0}'

O comando acima retorna o uso de RAM em porcentagem

Agora, isso deve ser comparado com um limite de 80%. Então, se algum dos valores acima [HDD / RAM] estiver no lado alto, o programa deve enviar um anexo de email com o resultado do comando 'top', para mostrar o uso da CPU.

Por favor ajude.

Isso deve ser adicionado à guia cron para ser executada em intervalos iguais. Por favor, atualize.

    
por kiran bbnl 14.05.2015 / 12:12

1 resposta

1

Vamos começar.

Criar load.sh script

nano /path/load.sh

#!/bin/bash

#we use output from "uptime" i "w" to have load on 5 min

UPTIME='uptime';
W='w';
RAM='free -m';
DATE='date';
sleep 3
DF='df -h'
sleep 3

echo "######################################" >> /var/log/load-result/load_log
echo "$DATE" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "UPTIME:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$UPTIME" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "W COMMAND:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$W" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "FREE RAM:" >> /var/log/load-result/load_log
echo "$RAM" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "FREE SPACE:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$DF" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "#####################################" >> /var/log/load-result/load_log

dê permissão do roteiro X

chmod 777 /path/load.sh

Crie um diretório para armazenar um arquivo de log

sudo mkdir /var/log/load-result

Crie um script para enviar e-mails

nano /path/mail.sh

mail -s Load_From_PC [email protected] < /var/log/load-result/load_log

Dê X mail.sh

chmod 777 /path/mail.sh

Crie tarefas agendadas

sudo crontab -e

*/5 * * * * /path/load.sh
00 11 * * * /path/mail.sh

load.sh será executado a cada 5 min e o resultado do script será adicionado na parte inferior do arquivo de log.

mail.sh será acionado todos os dias às 11:00 h

Você pode mudar o horário ...

    
por 2707974 14.05.2015 / 12:40