SlideShare uma empresa Scribd logo
Introdu¸˜o
                       ca
                  Sysadmin
                      DBA
       Considera¸˜es finais
                 co




Perl para Sysadmins e DBA’s

       Lindolfo ”Lorn” Rodrigues




 Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                       ca
                                  Sysadmin
                                      DBA
                       Considera¸˜es finais
                                 co


$ whoami




  $ id
  $ uid=1000(lorn) gid=100(users)
  grupos=11(#sao-paulo.pm), 17(#slackware-br), 18(#catalyst),
  19(#moose),83(#perl6)




                 Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                      ca
                                 Sysadmin
                                     DBA
                      Considera¸˜es finais
                                co


Agenda



     Sysadmin
         One-liners
         Parsers de log
         Automatiza¸˜es
                     co

     DBA
         ETL
         Data Cleaning




                Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                      ca
                                 Sysadmin
                                     DBA
                      Considera¸˜es finais
                                co


Agenda



     Sysadmin
         One-liners
         Parsers de log
         Automatiza¸˜es
                     co

     DBA
         ETL
         Data Cleaning




                Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                      ca
                                 Sysadmin
                                     DBA
                      Considera¸˜es finais
                                co


Agenda



     Sysadmin
         One-liners
         Parsers de log
         Automatiza¸˜es
                     co

     DBA
         ETL
         Data Cleaning




                Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                      ca
                                 Sysadmin
                                     DBA
                      Considera¸˜es finais
                                co


Agenda



     Sysadmin
         One-liners
         Parsers de log
         Automatiza¸˜es
                     co

     DBA
         ETL
         Data Cleaning




                Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                      ca
                                 Sysadmin
                                     DBA
                      Considera¸˜es finais
                                co


Agenda



     Sysadmin
         One-liners
         Parsers de log
         Automatiza¸˜es
                     co

     DBA
         ETL
         Data Cleaning




                Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                      ca
                                 Sysadmin
                                     DBA
                      Considera¸˜es finais
                                co


Agenda



     Sysadmin
         One-liners
         Parsers de log
         Automatiza¸˜es
                     co

     DBA
         ETL
         Data Cleaning




                Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                      ca
                                 Sysadmin
                                     DBA
                      Considera¸˜es finais
                                co


Agenda



     Sysadmin
         One-liners
         Parsers de log
         Automatiza¸˜es
                     co

     DBA
         ETL
         Data Cleaning




                Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                          ca
                                     Sysadmin
                                         DBA
                          Considera¸˜es finais
                                    co


One-liners


       Perl na linha de comando
       Lembra muito sed/awk, com todo o poder da PCRE
             sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt
             perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt
             awk: awk ’{print $1;}’ arquivo.txt
             perl: perl -npe ’print $F[0]’ arquivo.txt
       Perl = Shell Script + awk + sed + ... + CPAN!
       o/




                    Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                          ca
                                     Sysadmin
                                         DBA
                          Considera¸˜es finais
                                    co


One-liners


       Perl na linha de comando
       Lembra muito sed/awk, com todo o poder da PCRE
             sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt
             perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt
             awk: awk ’{print $1;}’ arquivo.txt
             perl: perl -npe ’print $F[0]’ arquivo.txt
       Perl = Shell Script + awk + sed + ... + CPAN!
       o/




                    Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                          ca
                                     Sysadmin
                                         DBA
                          Considera¸˜es finais
                                    co


One-liners


       Perl na linha de comando
       Lembra muito sed/awk, com todo o poder da PCRE
             sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt
             perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt
             awk: awk ’{print $1;}’ arquivo.txt
             perl: perl -npe ’print $F[0]’ arquivo.txt
       Perl = Shell Script + awk + sed + ... + CPAN!
       o/




                    Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                          ca
                                     Sysadmin
                                         DBA
                          Considera¸˜es finais
                                    co


One-liners


       Perl na linha de comando
       Lembra muito sed/awk, com todo o poder da PCRE
             sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt
             perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt
             awk: awk ’{print $1;}’ arquivo.txt
             perl: perl -npe ’print $F[0]’ arquivo.txt
       Perl = Shell Script + awk + sed + ... + CPAN!
       o/




                    Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                          ca
                                     Sysadmin
                                         DBA
                          Considera¸˜es finais
                                    co


One-liners


       Perl na linha de comando
       Lembra muito sed/awk, com todo o poder da PCRE
             sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt
             perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt
             awk: awk ’{print $1;}’ arquivo.txt
             perl: perl -npe ’print $F[0]’ arquivo.txt
       Perl = Shell Script + awk + sed + ... + CPAN!
       o/




                    Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                          ca
                                     Sysadmin
                                         DBA
                          Considera¸˜es finais
                                    co


One-liners


       Perl na linha de comando
       Lembra muito sed/awk, com todo o poder da PCRE
             sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt
             perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt
             awk: awk ’{print $1;}’ arquivo.txt
             perl: perl -npe ’print $F[0]’ arquivo.txt
       Perl = Shell Script + awk + sed + ... + CPAN!
       o/




                    Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                          ca
                                     Sysadmin
                                         DBA
                          Considera¸˜es finais
                                    co


One-liners


       Perl na linha de comando
       Lembra muito sed/awk, com todo o poder da PCRE
             sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt
             perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt
             awk: awk ’{print $1;}’ arquivo.txt
             perl: perl -npe ’print $F[0]’ arquivo.txt
       Perl = Shell Script + awk + sed + ... + CPAN!
       o/




                    Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                       ca
                                  Sysadmin
                                      DBA
                       Considera¸˜es finais
                                 co


One-liners




       find /var/www -iname ”*.html-exec perl -i.bck -npe
       ’s/foo/bar/g’ ’’
       perl -MDBD::mysql -e
       ’DBD::mysql-¿connect(’dbname=yapc;Host=192.168.1.2’,
       ’root’, ’yapc2009’)




                 Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                       ca
                                  Sysadmin
                                      DBA
                       Considera¸˜es finais
                                 co


One-liners




       find /var/www -iname ”*.html-exec perl -i.bck -npe
       ’s/foo/bar/g’ ’’
       perl -MDBD::mysql -e
       ’DBD::mysql-¿connect(’dbname=yapc;Host=192.168.1.2’,
       ’root’, ’yapc2009’)




                 Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                         ca
                                    Sysadmin
                                        DBA
                         Considera¸˜es finais
                                   co


One-liners




       dicas.txt ( canivete sui¸o one-liners )
                               c
       App::Rad!




                   Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                         ca
                                    Sysadmin
                                        DBA
                         Considera¸˜es finais
                                   co


One-liners




       dicas.txt ( canivete sui¸o one-liners )
                               c
       App::Rad!




                   Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                                ca
                                           Sysadmin
                                               DBA
                                Considera¸˜es finais
                                          co


One-liners




1   u s e App : : Rad ' i n c l u d e ' ;
2   App : : Rad−>run ;




                          Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                          ca
                                     Sysadmin
                                         DBA
                          Considera¸˜es finais
                                    co


One-liners


        $ perl dicas.pl include ’arruma string’ -i.bck -npe
        ’s/foo/bar/g’ arquivo.txt
        $ perl dicas.pl

    1   Usage : dicas . pl command [ arguments ]
    2
    3   Available Commands :
    4       arruma_string
    5       help             show syntax and available commands
    6       include          include one−liner as a command


        $ perl dicas.pl arruma string outro arquivo.txt


                    Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                          ca
                                     Sysadmin
                                         DBA
                          Considera¸˜es finais
                                    co


One-liners


        $ perl dicas.pl include ’arruma string’ -i.bck -npe
        ’s/foo/bar/g’ arquivo.txt
        $ perl dicas.pl

    1   Usage : dicas . pl command [ arguments ]
    2
    3   Available Commands :
    4       arruma_string
    5       help             show syntax and available commands
    6       include          include one−liner as a command


        $ perl dicas.pl arruma string outro arquivo.txt


                    Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                          ca
                                     Sysadmin
                                         DBA
                          Considera¸˜es finais
                                    co


One-liners


        $ perl dicas.pl include ’arruma string’ -i.bck -npe
        ’s/foo/bar/g’ arquivo.txt
        $ perl dicas.pl

    1   Usage : dicas . pl command [ arguments ]
    2
    3   Available Commands :
    4       arruma_string
    5       help             show syntax and available commands
    6       include          include one−liner as a command


        $ perl dicas.pl arruma string outro arquivo.txt


                    Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                   ca
                              Sysadmin
                                  DBA
                   Considera¸˜es finais
                             co


One-liners




             Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                           ca
                                      Sysadmin
                                          DBA
                           Considera¸˜es finais
                                     co


Parsers



          Como mandar o log do Apache para o Syslog ( tutorial no
          ultimo slide )
          PABX
              Usar Spreadsheet::Write
              Customizar com cores, gerentes/chefes adoram cores
          maillog




                     Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                           ca
                                      Sysadmin
                                          DBA
                           Considera¸˜es finais
                                     co


Parsers



          Como mandar o log do Apache para o Syslog ( tutorial no
          ultimo slide )
          PABX
              Usar Spreadsheet::Write
              Customizar com cores, gerentes/chefes adoram cores
          maillog




                     Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                           ca
                                      Sysadmin
                                          DBA
                           Considera¸˜es finais
                                     co


Parsers



          Como mandar o log do Apache para o Syslog ( tutorial no
          ultimo slide )
          PABX
              Usar Spreadsheet::Write
              Customizar com cores, gerentes/chefes adoram cores
          maillog




                     Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                           ca
                                      Sysadmin
                                          DBA
                           Considera¸˜es finais
                                     co


Parsers



          Como mandar o log do Apache para o Syslog ( tutorial no
          ultimo slide )
          PABX
              Usar Spreadsheet::Write
              Customizar com cores, gerentes/chefes adoram cores
          maillog




                     Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                           ca
                                      Sysadmin
                                          DBA
                           Considera¸˜es finais
                                     co


Parsers



          Como mandar o log do Apache para o Syslog ( tutorial no
          ultimo slide )
          PABX
              Usar Spreadsheet::Write
              Customizar com cores, gerentes/chefes adoram cores
          maillog




                     Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                                    ca
                                               Sysadmin
                                                   DBA
                                    Considera¸˜es finais
                                              co


Pr´-requisitos
  e


    Hash tables, o que s˜o e como pode ser usada?
                        a

1   my %idade = (
2           ” r a u l s e i x a s ” => 1 0 0 0 0 ,
3           ” a r t h u r d e n t ” => 42
4   );
5   p r i n t $ idade { ' a r t h u r d e n t ' } ;
6   # a d i c i o n a n d o i t e n s ao h a s h
7   $ idade { ” j e r e m i a s ” }=27;
8   # deletando itens
9   d e l e t e ( $ idade { ' r a u l s e i x a s ' } ) ;




                              Lindolfo ”Lorn” Rodrigues     Perl para Sysadmins e DBA’s
Introdu¸˜o
                                              ca
                                         Sysadmin
                                             DBA
                              Considera¸˜es finais
                                        co


Pr´-requisitos
  e



    Estrutura de um hash:

1   $ VAR1 = {
2                 ' j e r e m i a s ' => 2 7 ,
3                 ' a r t h u r d e n t ' => 4 2 ,
4                 ' r a u l s e i x a s ' => −10000
5            };




                        Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                                 ca
                                            Sysadmin
                                                DBA
                                 Considera¸˜es finais
                                           co


Pega ”spider”

     Pegando o ”invasor” do seu site

 1   w h i l e (my $ line = <STDIN >) {
 2               my ( $ ip ) = s p l i t ( /  s / , $ line ) ;
 3                    $ hash_count { $ ip } = $ hash_count { $ ip } + 1 ;
 4   }
 5
 6   p r i n t Dumper %hash_count ;
 7   f o r e a c h my $ line ( s o r t { $ hash_count { $ b } <=> $ hash_count {←
             $a } } k e y s
 8   %hash_count ) {
 9                 my $ acessos = $ hash_count { $ line } ;
10                      p r i n t ” i p : $ l i n e  t a c e s s o s :  t $ a c e s s o s n” ;
11   }




                           Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                                     ca
                                                Sysadmin
                                                    DBA
                                     Considera¸˜es finais
                                               co


Pega ”spider”




1   $ VAR1 = {
2                     ' 1 2 8 . 9 8 . 1 2 0 . 8 4 ' => 2 ,
3                     ' 3 8 . 9 8 . 1 2 0 . 8 4 ' => 6 ,
4                     ' 1 1 8 . 9 8 . 1 2 0 . 8 4 ' => ' 1 '
5                };
6   ip : 3 8 . 9 8 . 1 2 0 . 8 4        acessos :              6
7   ip : 1 2 8 . 9 8 . 1 2 0 . 8 4      acessos :              2
8   ip : 1 1 8 . 9 8 . 1 2 0 . 8 4      acessos :              1




                              Lindolfo ”Lorn” Rodrigues    Perl para Sysadmins e DBA’s
Introdu¸˜o
                                             ca
                                        Sysadmin
                                            DBA
                             Considera¸˜es finais
                                       co


Achando arquivo duplicados


 1   my @targets = ( ' /home/ l o r n / f o o / ' ) ;
 2   my $ tree = File : : Find : : Object−>new ( { } , @targets ) ;
 3   my %hash_file = ( ) ;
 4   my $ md5 = Digest : : MD5−>new ;
 5   w h i l e (my $ r = $ tree−>n e x t ( ) ) {
 6            i f ( −d $ r ) {
 7                    next ;
 8            }
 9            open (my $ file , '< ' , $ r ) or d i e ” $ !  n” ;
10            $ md5−>addfile ( $ file ) ;
11            my $ digest = $ md5−>hexdigest ;
12            c l o s e $ file ;
13            my @files = ( $ r ) ;
14            pu sh ( @ { $ hash_file { $ digest } } , $ r ) ;
15   }



                       Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                              ca
                                         Sysadmin
                                             DBA
                              Considera¸˜es finais
                                        co


Achando arquivo duplicados



1   f o r e a c h my $ md5hex ( s o r t { $ hash_file { $ a } <=> $ hash_file {←
            $b } } k e y s
2           %hash_file ) {
3            i f ( s c a l a r ( @ { $ hash_file { $ md5hex } } ) > 1 ) {
4                            p r i n t ” A r q u i v o d u p l i c a d o !  n” ;
5                            f o r e a c h my $ file ( @ { $ hash_file { $ md5hex } } ) {
6                                     p r i n t ” f i l e : $ f i l e n” ;
7                            }
8                    }
9   }




                        Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                                   ca
                                              Sysadmin
                                                  DBA
                                   Considera¸˜es finais
                                             co


Achando arquivo duplicados


 1   $ VAR1 = {
 2                 ' 4 b 1 a 7 8 5 a 1 d d 6 d b 7 b 5 e 4 f 8 6 c 7 e 5 6 c 2 d 1 d ' =>
 3                 [
 4                     '/ Users / lo r n / foo / arquivo2 . txt ' ,
 5                     '/ Users / lo r n / foo / arquivo23 . txt '
 6                 ],
 7
 8                 ' 3789 f a 4 8 9 8 d 7 b 7 f 1 5 1 3 c 8 a d 3 9 6 5 c 3 f 9 a ' =>
 9                 [
10                     '/ Users / lo r n / foo / arquivo1 . txt ' ,
11                     '/ Users / lo r n / foo / arquivo11 . txt ' ,
12                     ' / U s e r s / l o r n / f o o /tmp/ a r q u i v o 4 2 . t x t '
13                 ]
14            };




                             Lindolfo ”Lorn” Rodrigues       Perl para Sysadmins e DBA’s
Introdu¸˜o
                                      ca
                                 Sysadmin
                                     DBA
                      Considera¸˜es finais
                                co


Automatizando tarefas




      Qualquer programa com opcao de include, pode ser
      automatizado
      Apache, Samba, Bind




                Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                      ca
                                 Sysadmin
                                     DBA
                      Considera¸˜es finais
                                co


Automatizando tarefas




      Qualquer programa com opcao de include, pode ser
      automatizado
      Apache, Samba, Bind




                Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading
       Nenhuma linguagem carrega dados no banco, mais rapido que
       o proprio banco
       pg copy ( PostgreSQL ) , impdmp ( Oracle )
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco
       Limpeza de caracteres ’ ?’
       dupla dinamic ord - chr
           ord: descobre o ”id” do caracter estranho
           chr: recebe o ”id” do caracter e retorna o mesmo
           my $id estranho = ord(371);
           my $char estranho = chr($id estranho);
           my $texto sujo = s/$char estranho//g;
       Validar os dados de entrada ( CNPJ, CPF, etc )
       Business::BR::CNPJ Business::BR::CPF
                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading
       Nenhuma linguagem carrega dados no banco, mais rapido que
       o proprio banco
       pg copy ( PostgreSQL ) , impdmp ( Oracle )
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco
       Limpeza de caracteres ’ ?’
       dupla dinamic ord - chr
           ord: descobre o ”id” do caracter estranho
           chr: recebe o ”id” do caracter e retorna o mesmo
           my $id estranho = ord(371);
           my $char estranho = chr($id estranho);
           my $texto sujo = s/$char estranho//g;
       Validar os dados de entrada ( CNPJ, CPF, etc )
       Business::BR::CNPJ Business::BR::CPF
                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading
       Nenhuma linguagem carrega dados no banco, mais rapido que
       o proprio banco
       pg copy ( PostgreSQL ) , impdmp ( Oracle )
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco
       Limpeza de caracteres ’ ?’
       dupla dinamic ord - chr
           ord: descobre o ”id” do caracter estranho
           chr: recebe o ”id” do caracter e retorna o mesmo
           my $id estranho = ord(371);
           my $char estranho = chr($id estranho);
           my $texto sujo = s/$char estranho//g;
       Validar os dados de entrada ( CNPJ, CPF, etc )
       Business::BR::CNPJ Business::BR::CPF
                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading
       Nenhuma linguagem carrega dados no banco, mais rapido que
       o proprio banco
       pg copy ( PostgreSQL ) , impdmp ( Oracle )
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco
       Limpeza de caracteres ’ ?’
       dupla dinamic ord - chr
           ord: descobre o ”id” do caracter estranho
           chr: recebe o ”id” do caracter e retorna o mesmo
           my $id estranho = ord(371);
           my $char estranho = chr($id estranho);
           my $texto sujo = s/$char estranho//g;
       Validar os dados de entrada ( CNPJ, CPF, etc )
       Business::BR::CNPJ Business::BR::CPF
                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading
       Nenhuma linguagem carrega dados no banco, mais rapido que
       o proprio banco
       pg copy ( PostgreSQL ) , impdmp ( Oracle )
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco
       Limpeza de caracteres ’ ?’
       dupla dinamic ord - chr
           ord: descobre o ”id” do caracter estranho
           chr: recebe o ”id” do caracter e retorna o mesmo
           my $id estranho = ord(371);
           my $char estranho = chr($id estranho);
           my $texto sujo = s/$char estranho//g;
       Validar os dados de entrada ( CNPJ, CPF, etc )
       Business::BR::CNPJ Business::BR::CPF
                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading
       Nenhuma linguagem carrega dados no banco, mais rapido que
       o proprio banco
       pg copy ( PostgreSQL ) , impdmp ( Oracle )
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco
       Limpeza de caracteres ’ ?’
       dupla dinamic ord - chr
           ord: descobre o ”id” do caracter estranho
           chr: recebe o ”id” do caracter e retorna o mesmo
           my $id estranho = ord(371);
           my $char estranho = chr($id estranho);
           my $texto sujo = s/$char estranho//g;
       Validar os dados de entrada ( CNPJ, CPF, etc )
       Business::BR::CNPJ Business::BR::CPF
                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading
       Nenhuma linguagem carrega dados no banco, mais rapido que
       o proprio banco
       pg copy ( PostgreSQL ) , impdmp ( Oracle )
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco
       Limpeza de caracteres ’ ?’
       dupla dinamic ord - chr
           ord: descobre o ”id” do caracter estranho
           chr: recebe o ”id” do caracter e retorna o mesmo
           my $id estranho = ord(371);
           my $char estranho = chr($id estranho);
           my $texto sujo = s/$char estranho//g;
       Validar os dados de entrada ( CNPJ, CPF, etc )
       Business::BR::CNPJ Business::BR::CPF
                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading
       Nenhuma linguagem carrega dados no banco, mais rapido que
       o proprio banco
       pg copy ( PostgreSQL ) , impdmp ( Oracle )
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco
       Limpeza de caracteres ’ ?’
       dupla dinamic ord - chr
           ord: descobre o ”id” do caracter estranho
           chr: recebe o ”id” do caracter e retorna o mesmo
           my $id estranho = ord(371);
           my $char estranho = chr($id estranho);
           my $texto sujo = s/$char estranho//g;
       Validar os dados de entrada ( CNPJ, CPF, etc )
       Business::BR::CNPJ Business::BR::CPF
                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading
       Nenhuma linguagem carrega dados no banco, mais rapido que
       o proprio banco
       pg copy ( PostgreSQL ) , impdmp ( Oracle )
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco
       Limpeza de caracteres ’ ?’
       dupla dinamic ord - chr
           ord: descobre o ”id” do caracter estranho
           chr: recebe o ”id” do caracter e retorna o mesmo
           my $id estranho = ord(371);
           my $char estranho = chr($id estranho);
           my $texto sujo = s/$char estranho//g;
       Validar os dados de entrada ( CNPJ, CPF, etc )
       Business::BR::CNPJ Business::BR::CPF
                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading
       Nenhuma linguagem carrega dados no banco, mais rapido que
       o proprio banco
       pg copy ( PostgreSQL ) , impdmp ( Oracle )
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco
       Limpeza de caracteres ’ ?’
       dupla dinamic ord - chr
           ord: descobre o ”id” do caracter estranho
           chr: recebe o ”id” do caracter e retorna o mesmo
           my $id estranho = ord(371);
           my $char estranho = chr($id estranho);
           my $texto sujo = s/$char estranho//g;
       Validar os dados de entrada ( CNPJ, CPF, etc )
       Business::BR::CNPJ Business::BR::CPF
                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading
       Nenhuma linguagem carrega dados no banco, mais rapido que
       o proprio banco
       pg copy ( PostgreSQL ) , impdmp ( Oracle )
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco
       Limpeza de caracteres ’ ?’
       dupla dinamic ord - chr
           ord: descobre o ”id” do caracter estranho
           chr: recebe o ”id” do caracter e retorna o mesmo
           my $id estranho = ord(371);
           my $char estranho = chr($id estranho);
           my $texto sujo = s/$char estranho//g;
       Validar os dados de entrada ( CNPJ, CPF, etc )
       Business::BR::CNPJ Business::BR::CPF
                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading
       Nenhuma linguagem carrega dados no banco, mais rapido que
       o proprio banco
       pg copy ( PostgreSQL ) , impdmp ( Oracle )
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco
       Limpeza de caracteres ’ ?’
       dupla dinamic ord - chr
           ord: descobre o ”id” do caracter estranho
           chr: recebe o ”id” do caracter e retorna o mesmo
           my $id estranho = ord(371);
           my $char estranho = chr($id estranho);
           my $texto sujo = s/$char estranho//g;
       Validar os dados de entrada ( CNPJ, CPF, etc )
       Business::BR::CNPJ Business::BR::CPF
                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading




       Spreadsheet::Write tamb´m funciona bem com SELECT
                              e
       ... ou seja, n˜o precisa gerar um .csv e carregar no seu ”Excel”
                     a
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco




                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading




       Spreadsheet::Write tamb´m funciona bem com SELECT
                              e
       ... ou seja, n˜o precisa gerar um .csv e carregar no seu ”Excel”
                     a
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco




                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Extract, transform, loading




       Spreadsheet::Write tamb´m funciona bem com SELECT
                              e
       ... ou seja, n˜o precisa gerar um .csv e carregar no seu ”Excel”
                     a
       ..mas vocˆ pode modificar o que ser´ carregado antes de usar
                 e                       a
       o proprio banco




                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                      ca
                                 Sysadmin
                                     DBA
                      Considera¸˜es finais
                                co


Extract, transform, loading




       Pequel ETL




                Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                       ca
                                  Sysadmin
                                      DBA
                       Considera¸˜es finais
                                 co


PL/Perl - PL/PerlU




      Palesta do David Fetter ( http://fetter.org )




                 Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                       ca
                                  Sysadmin
                                      DBA
                       Considera¸˜es finais
                                 co


Data Cleaning




      Text::Levenshtein ( Edit Distance ou Levenshtein Distance )
          rato - ralo
          rodar - rodo
      Algorithm::LCS
      Algoritmo usado no diff de codigos




                 Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                       ca
                                  Sysadmin
                                      DBA
                       Considera¸˜es finais
                                 co


Data Cleaning




      Text::Levenshtein ( Edit Distance ou Levenshtein Distance )
          rato - ralo
          rodar - rodo
      Algorithm::LCS
      Algoritmo usado no diff de codigos




                 Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                       ca
                                  Sysadmin
                                      DBA
                       Considera¸˜es finais
                                 co


Data Cleaning




      Text::Levenshtein ( Edit Distance ou Levenshtein Distance )
          rato - ralo
          rodar - rodo
      Algorithm::LCS
      Algoritmo usado no diff de codigos




                 Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                       ca
                                  Sysadmin
                                      DBA
                       Considera¸˜es finais
                                 co


Data Cleaning




      Text::Levenshtein ( Edit Distance ou Levenshtein Distance )
          rato - ralo
          rodar - rodo
      Algorithm::LCS
      Algoritmo usado no diff de codigos




                 Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                       ca
                                  Sysadmin
                                      DBA
                       Considera¸˜es finais
                                 co


Data Cleaning




      Text::Levenshtein ( Edit Distance ou Levenshtein Distance )
          rato - ralo
          rodar - rodo
      Algorithm::LCS
      Algoritmo usado no diff de codigos




                 Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Bibliografia e coisas interessantes




   Cultured Perl: Automating UNIX system administration with Perl
   Cultured Perl: One-liners 101
   Sending Apache httpd Logs to Syslog
   http://www.lornlab.org/ palestra yapc2009/




                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Obrigado




      Duvidas?
      lorn at lornlab dot org




                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s
Introdu¸˜o
                                        ca
                                   Sysadmin
                                       DBA
                        Considera¸˜es finais
                                  co


Obrigado




      Duvidas?
      lorn at lornlab dot org




                  Lindolfo ”Lorn” Rodrigues   Perl para Sysadmins e DBA’s

Mais conteúdo relacionado

KEY
A busca pelo deploy continuo
PDF
Suite de Testes
PPT
Dolz,sosa y garcia
PPTX
English exchange Georgia and Mireia
PDF
Verissimo
PPT
Alba mas morales
DOC
Mec guia 1
A busca pelo deploy continuo
Suite de Testes
Dolz,sosa y garcia
English exchange Georgia and Mireia
Verissimo
Alba mas morales
Mec guia 1

Destaque (19)

PPT
Juguem amb dites
PDF
Booklet
PDF
Desafios da Expansão da Produção Mineral na Bahia
DOC
Haur hezkuntzako programa ezberdinak
PPTX
Interment of pacita tamondong at Holy Gardens Pangasinan Memorial Park
PDF
2_Tarefa_TeresaMaia
PPTX
Sojung proposal
ODP
Examen presentacion angel oses
PDF
Webquest "O clima de Galicia"
PPTX
Material de apoyo clase 2 mrkt
PDF
I CEFET Coding Dojo - Divulgação
PPT
Adventure sports
PDF
Culinaria Japonesa
PPTX
Champion Studios
PPT
Slide 1 Columna
PPTX
Excchange Cristina and Maddie
PDF
A linguagem da saúde
PDF
King Portfolio
Juguem amb dites
Booklet
Desafios da Expansão da Produção Mineral na Bahia
Haur hezkuntzako programa ezberdinak
Interment of pacita tamondong at Holy Gardens Pangasinan Memorial Park
2_Tarefa_TeresaMaia
Sojung proposal
Examen presentacion angel oses
Webquest "O clima de Galicia"
Material de apoyo clase 2 mrkt
I CEFET Coding Dojo - Divulgação
Adventure sports
Culinaria Japonesa
Champion Studios
Slide 1 Columna
Excchange Cristina and Maddie
A linguagem da saúde
King Portfolio
Anúncio

Último (19)

PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Processos na gestão de transportes, TM100 Col18
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Aula04-Academia Heri- Tecnologia Geral 2025
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
COBITxITIL-Entenda as diferença em uso governança TI
Apple Pippin Uma breve introdução. - David Glotz
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Aula 18 - Manipulacao De Arquivos python
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Processos na gestão de transportes, TM100 Col18
Anúncio

perl sysadmin dba

  • 1. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Perl para Sysadmins e DBA’s Lindolfo ”Lorn” Rodrigues Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 2. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co $ whoami $ id $ uid=1000(lorn) gid=100(users) grupos=11(#sao-paulo.pm), 17(#slackware-br), 18(#catalyst), 19(#moose),83(#perl6) Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 3. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Agenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 4. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Agenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 5. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Agenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 6. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Agenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 7. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Agenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 8. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Agenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 9. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Agenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 10. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners Perl na linha de comando Lembra muito sed/awk, com todo o poder da PCRE sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt awk: awk ’{print $1;}’ arquivo.txt perl: perl -npe ’print $F[0]’ arquivo.txt Perl = Shell Script + awk + sed + ... + CPAN! o/ Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 11. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners Perl na linha de comando Lembra muito sed/awk, com todo o poder da PCRE sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt awk: awk ’{print $1;}’ arquivo.txt perl: perl -npe ’print $F[0]’ arquivo.txt Perl = Shell Script + awk + sed + ... + CPAN! o/ Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 12. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners Perl na linha de comando Lembra muito sed/awk, com todo o poder da PCRE sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt awk: awk ’{print $1;}’ arquivo.txt perl: perl -npe ’print $F[0]’ arquivo.txt Perl = Shell Script + awk + sed + ... + CPAN! o/ Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 13. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners Perl na linha de comando Lembra muito sed/awk, com todo o poder da PCRE sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt awk: awk ’{print $1;}’ arquivo.txt perl: perl -npe ’print $F[0]’ arquivo.txt Perl = Shell Script + awk + sed + ... + CPAN! o/ Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 14. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners Perl na linha de comando Lembra muito sed/awk, com todo o poder da PCRE sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt awk: awk ’{print $1;}’ arquivo.txt perl: perl -npe ’print $F[0]’ arquivo.txt Perl = Shell Script + awk + sed + ... + CPAN! o/ Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 15. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners Perl na linha de comando Lembra muito sed/awk, com todo o poder da PCRE sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt awk: awk ’{print $1;}’ arquivo.txt perl: perl -npe ’print $F[0]’ arquivo.txt Perl = Shell Script + awk + sed + ... + CPAN! o/ Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 16. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners Perl na linha de comando Lembra muito sed/awk, com todo o poder da PCRE sed: sed -i.bck -e ’s/foo/bar/g’ arquivo.txt perl: perl -i.bck -npe ’s/foo/bar/g’ arquivo.txt awk: awk ’{print $1;}’ arquivo.txt perl: perl -npe ’print $F[0]’ arquivo.txt Perl = Shell Script + awk + sed + ... + CPAN! o/ Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 17. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners find /var/www -iname ”*.html-exec perl -i.bck -npe ’s/foo/bar/g’ ’’ perl -MDBD::mysql -e ’DBD::mysql-¿connect(’dbname=yapc;Host=192.168.1.2’, ’root’, ’yapc2009’) Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 18. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners find /var/www -iname ”*.html-exec perl -i.bck -npe ’s/foo/bar/g’ ’’ perl -MDBD::mysql -e ’DBD::mysql-¿connect(’dbname=yapc;Host=192.168.1.2’, ’root’, ’yapc2009’) Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 19. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners dicas.txt ( canivete sui¸o one-liners ) c App::Rad! Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 20. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners dicas.txt ( canivete sui¸o one-liners ) c App::Rad! Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 21. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners 1 u s e App : : Rad ' i n c l u d e ' ; 2 App : : Rad−>run ; Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 22. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners $ perl dicas.pl include ’arruma string’ -i.bck -npe ’s/foo/bar/g’ arquivo.txt $ perl dicas.pl 1 Usage : dicas . pl command [ arguments ] 2 3 Available Commands : 4 arruma_string 5 help show syntax and available commands 6 include include one−liner as a command $ perl dicas.pl arruma string outro arquivo.txt Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 23. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners $ perl dicas.pl include ’arruma string’ -i.bck -npe ’s/foo/bar/g’ arquivo.txt $ perl dicas.pl 1 Usage : dicas . pl command [ arguments ] 2 3 Available Commands : 4 arruma_string 5 help show syntax and available commands 6 include include one−liner as a command $ perl dicas.pl arruma string outro arquivo.txt Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 24. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners $ perl dicas.pl include ’arruma string’ -i.bck -npe ’s/foo/bar/g’ arquivo.txt $ perl dicas.pl 1 Usage : dicas . pl command [ arguments ] 2 3 Available Commands : 4 arruma_string 5 help show syntax and available commands 6 include include one−liner as a command $ perl dicas.pl arruma string outro arquivo.txt Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 25. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 26. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Parsers Como mandar o log do Apache para o Syslog ( tutorial no ultimo slide ) PABX Usar Spreadsheet::Write Customizar com cores, gerentes/chefes adoram cores maillog Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 27. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Parsers Como mandar o log do Apache para o Syslog ( tutorial no ultimo slide ) PABX Usar Spreadsheet::Write Customizar com cores, gerentes/chefes adoram cores maillog Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 28. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Parsers Como mandar o log do Apache para o Syslog ( tutorial no ultimo slide ) PABX Usar Spreadsheet::Write Customizar com cores, gerentes/chefes adoram cores maillog Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 29. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Parsers Como mandar o log do Apache para o Syslog ( tutorial no ultimo slide ) PABX Usar Spreadsheet::Write Customizar com cores, gerentes/chefes adoram cores maillog Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 30. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Parsers Como mandar o log do Apache para o Syslog ( tutorial no ultimo slide ) PABX Usar Spreadsheet::Write Customizar com cores, gerentes/chefes adoram cores maillog Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 31. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Pr´-requisitos e Hash tables, o que s˜o e como pode ser usada? a 1 my %idade = ( 2 ” r a u l s e i x a s ” => 1 0 0 0 0 , 3 ” a r t h u r d e n t ” => 42 4 ); 5 p r i n t $ idade { ' a r t h u r d e n t ' } ; 6 # a d i c i o n a n d o i t e n s ao h a s h 7 $ idade { ” j e r e m i a s ” }=27; 8 # deletando itens 9 d e l e t e ( $ idade { ' r a u l s e i x a s ' } ) ; Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 32. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Pr´-requisitos e Estrutura de um hash: 1 $ VAR1 = { 2 ' j e r e m i a s ' => 2 7 , 3 ' a r t h u r d e n t ' => 4 2 , 4 ' r a u l s e i x a s ' => −10000 5 }; Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 33. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Pega ”spider” Pegando o ”invasor” do seu site 1 w h i l e (my $ line = <STDIN >) { 2 my ( $ ip ) = s p l i t ( / s / , $ line ) ; 3 $ hash_count { $ ip } = $ hash_count { $ ip } + 1 ; 4 } 5 6 p r i n t Dumper %hash_count ; 7 f o r e a c h my $ line ( s o r t { $ hash_count { $ b } <=> $ hash_count {← $a } } k e y s 8 %hash_count ) { 9 my $ acessos = $ hash_count { $ line } ; 10 p r i n t ” i p : $ l i n e t a c e s s o s : t $ a c e s s o s n” ; 11 } Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 34. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Pega ”spider” 1 $ VAR1 = { 2 ' 1 2 8 . 9 8 . 1 2 0 . 8 4 ' => 2 , 3 ' 3 8 . 9 8 . 1 2 0 . 8 4 ' => 6 , 4 ' 1 1 8 . 9 8 . 1 2 0 . 8 4 ' => ' 1 ' 5 }; 6 ip : 3 8 . 9 8 . 1 2 0 . 8 4 acessos : 6 7 ip : 1 2 8 . 9 8 . 1 2 0 . 8 4 acessos : 2 8 ip : 1 1 8 . 9 8 . 1 2 0 . 8 4 acessos : 1 Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 35. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Achando arquivo duplicados 1 my @targets = ( ' /home/ l o r n / f o o / ' ) ; 2 my $ tree = File : : Find : : Object−>new ( { } , @targets ) ; 3 my %hash_file = ( ) ; 4 my $ md5 = Digest : : MD5−>new ; 5 w h i l e (my $ r = $ tree−>n e x t ( ) ) { 6 i f ( −d $ r ) { 7 next ; 8 } 9 open (my $ file , '< ' , $ r ) or d i e ” $ ! n” ; 10 $ md5−>addfile ( $ file ) ; 11 my $ digest = $ md5−>hexdigest ; 12 c l o s e $ file ; 13 my @files = ( $ r ) ; 14 pu sh ( @ { $ hash_file { $ digest } } , $ r ) ; 15 } Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 36. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Achando arquivo duplicados 1 f o r e a c h my $ md5hex ( s o r t { $ hash_file { $ a } <=> $ hash_file {← $b } } k e y s 2 %hash_file ) { 3 i f ( s c a l a r ( @ { $ hash_file { $ md5hex } } ) > 1 ) { 4 p r i n t ” A r q u i v o d u p l i c a d o ! n” ; 5 f o r e a c h my $ file ( @ { $ hash_file { $ md5hex } } ) { 6 p r i n t ” f i l e : $ f i l e n” ; 7 } 8 } 9 } Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 37. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Achando arquivo duplicados 1 $ VAR1 = { 2 ' 4 b 1 a 7 8 5 a 1 d d 6 d b 7 b 5 e 4 f 8 6 c 7 e 5 6 c 2 d 1 d ' => 3 [ 4 '/ Users / lo r n / foo / arquivo2 . txt ' , 5 '/ Users / lo r n / foo / arquivo23 . txt ' 6 ], 7 8 ' 3789 f a 4 8 9 8 d 7 b 7 f 1 5 1 3 c 8 a d 3 9 6 5 c 3 f 9 a ' => 9 [ 10 '/ Users / lo r n / foo / arquivo1 . txt ' , 11 '/ Users / lo r n / foo / arquivo11 . txt ' , 12 ' / U s e r s / l o r n / f o o /tmp/ a r q u i v o 4 2 . t x t ' 13 ] 14 }; Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 38. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Automatizando tarefas Qualquer programa com opcao de include, pode ser automatizado Apache, Samba, Bind Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 39. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Automatizando tarefas Qualquer programa com opcao de include, pode ser automatizado Apache, Samba, Bind Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 40. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Limpeza de caracteres ’ ?’ dupla dinamic ord - chr ord: descobre o ”id” do caracter estranho chr: recebe o ”id” do caracter e retorna o mesmo my $id estranho = ord(371); my $char estranho = chr($id estranho); my $texto sujo = s/$char estranho//g; Validar os dados de entrada ( CNPJ, CPF, etc ) Business::BR::CNPJ Business::BR::CPF Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 41. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Limpeza de caracteres ’ ?’ dupla dinamic ord - chr ord: descobre o ”id” do caracter estranho chr: recebe o ”id” do caracter e retorna o mesmo my $id estranho = ord(371); my $char estranho = chr($id estranho); my $texto sujo = s/$char estranho//g; Validar os dados de entrada ( CNPJ, CPF, etc ) Business::BR::CNPJ Business::BR::CPF Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 42. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Limpeza de caracteres ’ ?’ dupla dinamic ord - chr ord: descobre o ”id” do caracter estranho chr: recebe o ”id” do caracter e retorna o mesmo my $id estranho = ord(371); my $char estranho = chr($id estranho); my $texto sujo = s/$char estranho//g; Validar os dados de entrada ( CNPJ, CPF, etc ) Business::BR::CNPJ Business::BR::CPF Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 43. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Limpeza de caracteres ’ ?’ dupla dinamic ord - chr ord: descobre o ”id” do caracter estranho chr: recebe o ”id” do caracter e retorna o mesmo my $id estranho = ord(371); my $char estranho = chr($id estranho); my $texto sujo = s/$char estranho//g; Validar os dados de entrada ( CNPJ, CPF, etc ) Business::BR::CNPJ Business::BR::CPF Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 44. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Limpeza de caracteres ’ ?’ dupla dinamic ord - chr ord: descobre o ”id” do caracter estranho chr: recebe o ”id” do caracter e retorna o mesmo my $id estranho = ord(371); my $char estranho = chr($id estranho); my $texto sujo = s/$char estranho//g; Validar os dados de entrada ( CNPJ, CPF, etc ) Business::BR::CNPJ Business::BR::CPF Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 45. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Limpeza de caracteres ’ ?’ dupla dinamic ord - chr ord: descobre o ”id” do caracter estranho chr: recebe o ”id” do caracter e retorna o mesmo my $id estranho = ord(371); my $char estranho = chr($id estranho); my $texto sujo = s/$char estranho//g; Validar os dados de entrada ( CNPJ, CPF, etc ) Business::BR::CNPJ Business::BR::CPF Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 46. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Limpeza de caracteres ’ ?’ dupla dinamic ord - chr ord: descobre o ”id” do caracter estranho chr: recebe o ”id” do caracter e retorna o mesmo my $id estranho = ord(371); my $char estranho = chr($id estranho); my $texto sujo = s/$char estranho//g; Validar os dados de entrada ( CNPJ, CPF, etc ) Business::BR::CNPJ Business::BR::CPF Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 47. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Limpeza de caracteres ’ ?’ dupla dinamic ord - chr ord: descobre o ”id” do caracter estranho chr: recebe o ”id” do caracter e retorna o mesmo my $id estranho = ord(371); my $char estranho = chr($id estranho); my $texto sujo = s/$char estranho//g; Validar os dados de entrada ( CNPJ, CPF, etc ) Business::BR::CNPJ Business::BR::CPF Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 48. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Limpeza de caracteres ’ ?’ dupla dinamic ord - chr ord: descobre o ”id” do caracter estranho chr: recebe o ”id” do caracter e retorna o mesmo my $id estranho = ord(371); my $char estranho = chr($id estranho); my $texto sujo = s/$char estranho//g; Validar os dados de entrada ( CNPJ, CPF, etc ) Business::BR::CNPJ Business::BR::CPF Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 49. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Limpeza de caracteres ’ ?’ dupla dinamic ord - chr ord: descobre o ”id” do caracter estranho chr: recebe o ”id” do caracter e retorna o mesmo my $id estranho = ord(371); my $char estranho = chr($id estranho); my $texto sujo = s/$char estranho//g; Validar os dados de entrada ( CNPJ, CPF, etc ) Business::BR::CNPJ Business::BR::CPF Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 50. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Limpeza de caracteres ’ ?’ dupla dinamic ord - chr ord: descobre o ”id” do caracter estranho chr: recebe o ”id” do caracter e retorna o mesmo my $id estranho = ord(371); my $char estranho = chr($id estranho); my $texto sujo = s/$char estranho//g; Validar os dados de entrada ( CNPJ, CPF, etc ) Business::BR::CNPJ Business::BR::CPF Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 51. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Limpeza de caracteres ’ ?’ dupla dinamic ord - chr ord: descobre o ”id” do caracter estranho chr: recebe o ”id” do caracter e retorna o mesmo my $id estranho = ord(371); my $char estranho = chr($id estranho); my $texto sujo = s/$char estranho//g; Validar os dados de entrada ( CNPJ, CPF, etc ) Business::BR::CNPJ Business::BR::CPF Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 52. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Spreadsheet::Write tamb´m funciona bem com SELECT e ... ou seja, n˜o precisa gerar um .csv e carregar no seu ”Excel” a ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 53. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Spreadsheet::Write tamb´m funciona bem com SELECT e ... ou seja, n˜o precisa gerar um .csv e carregar no seu ”Excel” a ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 54. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Spreadsheet::Write tamb´m funciona bem com SELECT e ... ou seja, n˜o precisa gerar um .csv e carregar no seu ”Excel” a ..mas vocˆ pode modificar o que ser´ carregado antes de usar e a o proprio banco Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 55. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Extract, transform, loading Pequel ETL Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 56. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co PL/Perl - PL/PerlU Palesta do David Fetter ( http://fetter.org ) Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 57. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Data Cleaning Text::Levenshtein ( Edit Distance ou Levenshtein Distance ) rato - ralo rodar - rodo Algorithm::LCS Algoritmo usado no diff de codigos Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 58. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Data Cleaning Text::Levenshtein ( Edit Distance ou Levenshtein Distance ) rato - ralo rodar - rodo Algorithm::LCS Algoritmo usado no diff de codigos Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 59. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Data Cleaning Text::Levenshtein ( Edit Distance ou Levenshtein Distance ) rato - ralo rodar - rodo Algorithm::LCS Algoritmo usado no diff de codigos Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 60. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Data Cleaning Text::Levenshtein ( Edit Distance ou Levenshtein Distance ) rato - ralo rodar - rodo Algorithm::LCS Algoritmo usado no diff de codigos Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 61. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Data Cleaning Text::Levenshtein ( Edit Distance ou Levenshtein Distance ) rato - ralo rodar - rodo Algorithm::LCS Algoritmo usado no diff de codigos Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 62. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Bibliografia e coisas interessantes Cultured Perl: Automating UNIX system administration with Perl Cultured Perl: One-liners 101 Sending Apache httpd Logs to Syslog http://www.lornlab.org/ palestra yapc2009/ Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 63. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Obrigado Duvidas? lorn at lornlab dot org Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 64. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co Obrigado Duvidas? lorn at lornlab dot org Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s