Skip to main content

Script

Script - Gerir VirtualHosts do Apache

Ora boas tardes,

Depois de algum tempo sem escrever nada no blog , trago-vos um script em perl acabado de sair do forno que nos permite adicionar, remover, listar, verificar, desativar os nossos virtualhosts.

Para tal temos temos ao nosso dispor as seguintes opções:

  • -add : para adicionar um virtualhost no apache , para tal basta usar a seguinte sintax: sudo ./apache -add ex: sudo ./apache -add www.rubemlrm.com rubemlrm

  • -rem: para remover um virtualhost no apache, para tal basta usar a seguinte sintax: sudo ./apache -rem ex: sudo ./apache -rem www.rubemlrm.com

Script - Verificar máquinas de rede

Boas noites, depois de algum tempo sem postar aqui nada devido a escola .Deixo aqui um pequeno script em perl que permite testar as máquinas de rede para ver quais é que estão ativas na nossa rede informática. Para tal é preciso ter um ficheiro com os ips que queremos testar e o script trata do resto sozinho.

#!/usr/bin/perl
use warnings;
use strict;
use Net::Ping;
use autodie;
my $host;
my $my_addr="<ip>";
my $ping;
my @reportlist;
chomp(my $date = `date +%a%d%m%y%k%M`);

open(FILE, "<ficheiro com ips>");
chomp (my @ips = <FILE>);
close(FILE);
foreach $host (@ips){
    $ping = Net::Ping->new();
    if ($ping->ping($host)){
        #print "$host -> está activo.n";
        push(@reportlist,"$host -> está activo.");
    }else{
        #print "$host -> está offlinen";
        push(@reportlist,"$host -> está offline.");
    }
    $ping ->close();
}
#Reporte da lista
foreach (@reportlist)
{
    print "$_n";
}

#para um ficheiro a ser enviado por mail</p>
open(FILE , ">../logs/'$date_machine_networking_report.txt'");
foreach (@reportlist){
    print FILE "$_n";
}
close(FILE);

Script - Verificar se utilizador existe

Este script tem como fundamento verificar se um utilizador existe ou não no sistema Linux e se existir além de nos mostrar uma mensagem a dizer que existe ainda vai identificar o UID desse utilizador.
Caso contrário vai mostrar uma mensagem de erro a dizer que o utilizador não existe.
Atenção não foram utilizados comandos bash por isso é tudo perl scripting.

#!/usr/bin/perl
use warnings;
use strict;
my @finalusers;
my $utilizador;
my $statuscode = 0;
my $uid;
#Analise se foi intruzido um nome ou não
if(@ARGV != 1){
    die "Argumento inválido";
}
chomp($utilizador = $ARGV[0]);
open(FILE, "/etc/passwd") || die($!);
chomp(my @utilizadores = <FILE>);
close(FILE);
foreach my $date (@utilizadores){
    chomp $date;
    my @finalusers = split /:/, $date;
    chomp(@finalusers);
    if($finalusers[0] eq $utilizador){
        $uid = $finalusers[2];
        $statuscode++;
    }
}
if( $statuscode != 1){
    print "O $utilizador NÃO se encontra criado no sisteman";
}else{
    print "o $utilizador JÁ se encontra criado no sistema! O seu UID é $uid !n" ;
}

Script - Sysadmin-toolbox

Depois de algum tempo a programar em perl , decidi “que tal por as minhas capacidades a prova” e construi um painel administrativo em perl para gerir sistemas.

E depois de algumas horas a programar , tenho uma versão 1 pronta a utilizar ainda com poucas funcionalidades é certo , mas para já considero que tem as funcionalidades básicas já implementadas , tais como:

  • Adicionar/remover utilizadores;
  • Possibilidade de fazer backups dos dados de um utilizador que se vai apagar;
  • Gestão de crons;
  • Funcionalidade para testar os pcs da rede.De forma a ver quais estão online e quais não estão;
  • Funcionalidade para encontrar pastas vazias e ficar com um registo das mesmas;
  • Funcionalidade para ver quais são os processos que estão a gastar mais recursos
  • Funcionalidade para adicionar vários utilizadores a uma máquina de forma automática
  • Funcionalidade para encontrar ficheiros que tenham um tamanho superior ao indicado.

Este projecto está disponível no github a partir do seguinte link : sysadmin-toolbox

Script - Reportar Directorias Vazias

Aqui fica um pequeno script para encontrar pastas vazias dentro de uma directoria.Este script utiliza o módulo File::Find::Rule para criar a listagem de todas as directorias e sub-directorias, utilizando uma directoria de partida.
Este script pode servir de base para a criação de um script para gerir directorias e apagar directorias vazias caso seja necessário.Para tal basta fazer pequenas alterações .

Para poderem executar este script teram que ter o módulo File::Find::Files instalado , para tal basta executarem o seguinte comando na linha de comandos: