Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Perl para Sysadmins e DBAs

Perl para Sysadmins e DBAs

Lindolfo Rodrigues

May 02, 2012
Tweet

More Decks by Lindolfo Rodrigues

Other Decks in Programming

Transcript

  1. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Perl

    para Sysadmins e DBA’s Lindolfo ”Lorn” Rodrigues Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  2. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais $

    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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Agenda

    Sysadmin One-liners Parsers de log Automatiza¸ c˜ oes DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  4. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Agenda

    Sysadmin One-liners Parsers de log Automatiza¸ c˜ oes DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  5. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Agenda

    Sysadmin One-liners Parsers de log Automatiza¸ c˜ oes DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  6. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Agenda

    Sysadmin One-liners Parsers de log Automatiza¸ c˜ oes DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  7. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Agenda

    Sysadmin One-liners Parsers de log Automatiza¸ c˜ oes DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  8. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Agenda

    Sysadmin One-liners Parsers de log Automatiza¸ c˜ oes DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  9. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Agenda

    Sysadmin One-liners Parsers de log Automatiza¸ c˜ oes DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  10. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais One-liners

    dicas.txt ( canivete sui¸ co one-liners ) App::Rad! Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  20. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais One-liners

    dicas.txt ( canivete sui¸ co one-liners ) App::Rad! Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  21. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais One-liners

    1 use App : : Rad ' i n c l u d e ' ; 2 App : : Rad−>run ; Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  22. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais One-liners

    Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  26. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Pr´

    e-requisitos Hash tables, o que s˜ ao e como pode ser usada? 1 my %idade = ( 2 ” r a u l s e i x a s ” => 10000 , 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 # adicionando i t e n s ao hash 7 $idade{” j e r e m i a s ”}=27; 8 # deletando i t e n s 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Pr´

    e-requisitos Estrutura de um hash: 1 $VAR1 = { 2 ' j e r e m i a s ' => 27 , 3 ' a r t h u r d e n t ' => 42 , 4 ' r a u l s e i x a s ' => −10000 5 }; Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  33. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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} } keys 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Pega

    ”spider” 1 $VAR1 = { 2 ' 128 .98. 120. 84 ' => 2 , 3 ' 3 8 . 9 8 . 1 2 0 . 8 4 ' => 6 , 4 ' 118 .98. 120. 84 ' => ' 1 ' 5 }; 6 ip : 3 8 . 9 8 . 1 2 0 . 8 4 acessos : 6 7 ip : 128 .98. 120. 84 acessos : 2 8 ip : 118 .98. 120. 84 acessos : 1 Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  35. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Achando

    arquivo duplicados 1 my @targets = ( ' /home/ l o r n / foo / ' ) ; 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−>next ( ) ) { 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 push ( @{$hash_file{$digest }} , $r ) ; 15 } Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  36. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Achando

    arquivo duplicados 1 f o r e a c h my $md5hex ( s o r t { $hash_file{$a} <=> $hash_file{← $b} } keys 2 %hash_file ) { 3 i f ( s c a l a r ( @{$hash_file{$md5hex }}) > 1) { 4 p r i n t ” Arquivo 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Achando

    arquivo duplicados 1 $VAR1 = { 2 ' 4 b1a785a1dd6db7b5e4f86c7e56c2d1d ' => 3 [ 4 ' / Users / l o r n / foo / arquivo2 . t x t ' , 5 ' / Users / l o r n / foo / arquivo23 . t x t ' 6 ] , 7 8 ' 3789 fa4898d7b7f1513c8ad3965c3f9a ' => 9 [ 10 ' / Users / l o r n / foo / arquivo1 . t x t ' , 11 ' / Users / l o r n / foo / arquivo11 . t x t ' , 12 ' / Users / l o r n / foo /tmp/ arquivo42 . t x t ' 13 ] 14 }; Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  38. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Nenhuma linguagem carrega dados no banco, mais rapido que o proprio banco pg copy ( PostgreSQL ) , impdmp ( Oracle ) ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Spreadsheet::Write tamb´ em funciona bem com SELECT ... ou seja, n˜ ao precisa gerar um .csv e carregar no seu ”Excel” ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar o proprio banco Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  53. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Spreadsheet::Write tamb´ em funciona bem com SELECT ... ou seja, n˜ ao precisa gerar um .csv e carregar no seu ”Excel” ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar o proprio banco Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  54. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Spreadsheet::Write tamb´ em funciona bem com SELECT ... ou seja, n˜ ao precisa gerar um .csv e carregar no seu ”Excel” ..mas vocˆ e pode modificar o que ser´ a carregado antes de usar o proprio banco Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  55. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Extract,

    transform, loading Pequel ETL Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  56. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais PL/Perl

    - PL/PerlU Palesta do David Fetter ( http://fetter.org ) Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  57. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais 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¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Obrigado

    Duvidas? lorn at lornlab dot org Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  64. Introdu¸ c˜ ao Sysadmin DBA Considera¸ c˜ oes finais Obrigado

    Duvidas? lorn at lornlab dot org Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s