FileSystem Alert
Publicado por Leonardo Berbert Gomes (última atualização em 29/07/2020)
[ Hits: 1.162 ]
Homepage: https://www.linkedin.com/in/leoberbert
Script para monitoramento de diversos filesystems e envio de e-mail sem uso de autenticação.
#!/bin/perl # use Sys::Hostname; use Data::Dumper; use Time::Local; # ($sec,$min,$hour,$day,$month,$year) = (localtime(time))[0,1,2,3,4,5]; $month +=1;$year +=1900; if ($day =~ /^\d$/) { $day = "0" . $day;} if ($min =~ /^\d$/) { $min = "0" . $min;} if ($sec =~ /^\d$/) { $sec = "0" . $sec;} if ($hour =~ /^\d$/) { $hour = "0" . $hour;} if ($month =~ /^\d$/) { $month = "0" . $month;} my $treshold = 85; ## Altere aqui pelo valor que irá gerar o alerta my $fs = "/home,/var/log"; ## Inclua todos os FileSystem que deseja monitorar my @fs = split /,/, $fs; my @list = (); for my $i (0 .. $#fs){ push @list, qr/^$fs[$i]/; } open (COMMAND,"df -h |"); while ($line = <COMMAND>){ chomp $line; if ($line =~ /^Filesystem/) {next}; my @array = split /\s+/, $line; $used_perc = @array[4]; $mount_point = @array[5]; $used_perc =~s/\%//g; if ($mount_point ~~ @list) { if ($used_perc >= $treshold) { $hash{"FileSystem: $mount_point \t| used: $used_perc%"}++; } } } my $mail_file = "mail" . "_" . $year . $month . $day . $hour . $min . $sec . ".tmp"; open(OUT,">$mail_file") or die "Can't open : $!"; foreach $I ( sort keys %hash) { print OUT "$I\n"; } close(OUT); if ( -z $mail_file ) { unlink $mail_file; } else { my $emails="leoberbert\@uol.com.br,leoberbert\@gmail.com.br"; ## Inclua todos os email que irão receber o alerta my $hostname = hostname(); my $server = "meuserver_smtp_sem_autenticacao.com.br:25"; ## Altere pelo seu servidor SMTP my $message = "Filesystem $mount_point acima do Treshold. "; system("cat $mail_file | mailx -S smtp=$server -s \"Alerta: Espaço em disco do servidor $hostname está no limite\" -v $emails"); unlink $mail_file; }
Algoritmo de Euclides estendido em Perl
Índice (Logaritmo Discreto) em Perl
Calculadora com Perl com menos de 10 linhas de código
Nenhum comentário foi encontrado.
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Solução rápida para o problema do Network Manager conectar mas não navegar
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
Como corrigir o erro chave publica virtual box (1)
Qual driver da NVIDIA instalar? (4)