Check All Process
Publicado por Leonardo Berbert Gomes (última atualização em 13/11/2013)
[ Hits: 3.429 ]
Homepage: https://www.linkedin.com/in/leoberbert
Este script em Perl tem como finalidade realizar a monitoração de todos os processos cadastrados em um arquivo de configuração e a partir dele, será verificado se todos os processos e/ou serviços possuem ao menos 1 processo em execução. Caso seja verdade, será exibida a mensagem de "OK", caso negativo será exibida a mensagem "FAILED".
No anexo coloquei a saída do script, note que ele é muito interativo para monitoração.
Espero que ajude a todos.
[]'s leoberbert
#!/usr/bin/perl # Created by Leonardo Berbert Gomes # E-mail: leoberbert@uol.com.br # Version: 1.0 # Date: 07-Oct-2013 # Description: Verifying that all system processes are running. ## Loading Config open CONFIG, "/home/oracle/Config" or die $!; while (my $line = <CONFIG>) { chomp $line; if ($line =~ /^#/) {next} $process_all = $line; $hash_process{"$process_all"}++; } close CONFIG; system ("clear"); check_proc(); my $parse_currentdate = get_date(); my @t_date = $parse_currentdate =~ /([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/; my $ncols = `tput cols`; my @text = ('System Process Status Report','Process Status'); print "=" x $ncols; print "\n"; print " " x int(($ncols - length $text[0])/2),$text[0]; print "\n"; print "=" x $ncols; print "\n"; printf "%-10s: %4s-%02s-%02s - %02s:%02s:%02s\n",'DATE',$t_date[0],$t_date[1],$t_date[2],$t_date[3],$t_date[4],$t_date[5]; printf "%-10s: %05s\n",'HOSTNAME',$host; printf "%-10s: %5s - %7s\n",'OS Version',$osname,$osrel; print "=" x $ncols; print "\n"; print " " x int(($ncols - length $text[1])/2),$text[1]; print "\n"; print "=" x $ncols; print "\n"; print "-" x $ncols; print "\n"; sub get_date { my ($opt) = shift; my ($current_date); my ($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;} if ($opt) { if ($opt eq 1) { $current_date = "$day$month $hour$min$sec"; return $current_date; } elsif ($opt eq 2) { $current_date = "$day$month$year"; return $current_date; } elsif ($opt eq 3) { $current_date = "$year$month$day"; return $current_date; } elsif ($opt eq 4) { $day--; $current_date = "$year$month$day"; return $current_date; } } else { my $date = "$year$month$day$hour$min$sec"; return $date; } } sub check_proc { $host = `hostname`; chomp($host); $osname = `uname -s`; $osrel = `uname -r`; chomp($osname); chomp($osrel); } foreach my $key ( sort keys %hash_process) { my $ps = `ps -ef \| grep \"$key\" \| grep -v \"grep" \| wc -l`; chomp $ps; if ($ps eq 1){ printf("Process: %-23.25s | Running: %4s | %4s Status: [OK]\n", $key, $ps); } else { printf("Process: %-23.25s | Running: %4s | %4s Status: [FAILED]\n", $key, $ps); } }
Diminuir ou aumentar o brilho de notebook
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Remoção de propaganda com o programa Comskip[AJUDA] (2)
Linux Lite Demorando Muito Para Ligar (0)
PC não liga no filtro de linha (3)