Sem Queda
Publicado por Diego Silva 19/01/2004
[ Hits: 5.067 ]
Homepage: http://www.diegosilva.net
Devido aos problemas que tive no passado referente a sobrecarregamento do cpu de meus servidores eu fiz um script eu checa o load average e envia um e-mail e/ou reinicia o sistema em caso do sobrecarregamento do cpu.
#!/usr/bin/perl
#############################################
################Sem queda 1.0################
#############################################
# Checa o Nivel de Processamento do CPU. #
# E o reinicia em caso de sobrecarregamento #
# As ações do mesmo são enviadas por e-mail #
# para o Administrador do Sistema. #
# #
# Recomendo que o script seja agendado #
# na crontab do Sistema #
#############################################
#Escrito por Diego Silva(djspeed@bol.com.br)#
#############################################
# E-mail do Administrador do Sistema
$emailadmin = "djspeed\@bol.com.br";
# não tire a \ antes do @
# Load Average Máximo
$loadaverage = "10.0";
# Reiniciar o Sistema quando o load average máximo for atingido?
# 1 para sim e 0 para não
$reiniciar = "1";
# Path do SendMail
$sendmail = "/usr/sbin/sendmail";
#############################################
###########Não Mexa Em mais Nada#############
#############################################
print "=================================\n";
print "==========Sem Queda V1.0=========\n";
print "=================================\n";
print "Verificando o Sistema....\n\n";
($buf1,$buf2,$buf3)=&get_uptime_info;
print "Load Average Maximo: $loadaverage\n";
print "Load Average Atual : $buf2\n\n";
$hostname = qx/hostname/;
if($buf2 < $loadaverage) {
print "Sistema trabalhando normalmente\n";
print "=================================\n";
print "Sistema Escrito por Diego A. Silva\n";
print "E-mail de Contato: djspeed\@bol.com.br\n";
print "=================================\n"
}else{
print "Sistema sobrecarregado....\n";
print "Enviando e-mail ao administrador...\n";
open(MAIL,"|$sendmail -t");
print MAIL "To: $emailadmin\n";
print MAIL "From: $emailadmin\n";
print MAIL "Subject: Sistema Sobrecarregado [Sem Queda 1.0]\n\n";
print MAIL "Caro Administrador,\n";
print MAIL "O Sistema de $hosname está sobrecarregado.\n";
print MAIL "Trabalhando atualmente com o Load Average de $buf2.";
if($reiniciar eq"1"){
print MAIL "O Sistema está sendo reiniciado.\n";
}
print MAIL "\nSem Queda V1.0";
close (MAIL);
print "Reiniciando o Sistema...";
system("reboot");
}
#############################################
sub get_uptime_info {
my ($uptime,$load,$users,$res,@buf,$buf);
if ($^O=~ /win/i) {
$uptime=$load=$users='<small>ERRO</small>';
} else {
eval {$res=`uptime`;};
if (($@) || ($res eq '') ) {
$uptime=$load=$users='<small><font color=red>Nao foi possivel detectar</font></small>';
} else {
chomp($res);
if ($res=~ s/\,*\s*load\s*averages*\s*\:*\s*(.*)//i) {
$buf=$1;
$buf=~ s/^\s+//;
@buf=split(/,*\s+/,$buf);
$load="$buf[0]";
} else {
$load='<small>Não foi possivel detectar</small>';
}
if ($res=~ s/\,*\s*(\d+)\s+user\(*s*\)*//i) {
$users=$1;
} else {
$users='<small><font color=red>Nao foi possivel detectar</font></small>';
}
if ($res=~ /up\s*\:*\s*(.*)\,*/) {
$uptime=$1;
$uptime=~ s/day/day/igs;
$uptime=~ s/min/minute/igs;
$uptime=~ s/(\d+)\:(\d+)/$1 hour\(s\) $2 minute(s)/igs;
} else {
$uptime='<small>Nao foi possivel detectar</small>';
}
}
}
return ($uptime,$load,$users);
}
#############################################
Verificação de IP em blacklists
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (1)
PIP3 - erro ao instalar módulo do mariadb para o Python (9)
É normal não gostar de KDE? (8)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









