Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

perl sysadmin dba

1,337 views

Published on

Published in: Technology
  • Be the first to comment

perl sysadmin dba

  1. 1. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coPerl para Sysadmins e DBA’s Lindolfo ”Lorn” Rodrigues Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  2. 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. 3. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coAgenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  4. 4. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coAgenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  5. 5. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coAgenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  6. 6. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coAgenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  7. 7. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coAgenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  8. 8. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coAgenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  9. 9. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coAgenda Sysadmin One-liners Parsers de log Automatiza¸˜es co DBA ETL Data Cleaning Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  10. 10. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-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. 11. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-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. 12. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-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. 13. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-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. 14. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-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. 15. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-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. 16. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-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. 17. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-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. 18. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-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. 19. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-liners dicas.txt ( canivete sui¸o one-liners ) c App::Rad! Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  20. 20. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-liners dicas.txt ( canivete sui¸o one-liners ) c App::Rad! Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  21. 21. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-liners1 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. 22. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-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. 23. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-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. 24. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-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. 25. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-liners Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  26. 26. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coParsers 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. 27. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coParsers 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. 28. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coParsers 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. 29. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coParsers 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. 30. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coParsers 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. 31. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coPr´-requisitos e Hash tables, o que s˜o e como pode ser usada? a1 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 ” => 424 );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 h7 $ idade { ” j e r e m i a s ” }=27;8 # deletando itens9 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. 32. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coPr´-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 => −100005 }; Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  33. 33. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coPega ”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. 34. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coPega ”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 : 67 ip : 1 2 8 . 9 8 . 1 2 0 . 8 4 acessos : 28 ip : 1 1 8 . 9 8 . 1 2 0 . 8 4 acessos : 1 Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  35. 35. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coAchando 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. 36. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coAchando arquivo duplicados1 f o r e a c h my $ md5hex ( s o r t { $ hash_file { $ a } <=> $ hash_file {← $b } } k e y s2 %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. 37. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coAchando 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. 38. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coAutomatizando tarefas Qualquer programa com opcao de include, pode ser automatizado Apache, Samba, Bind Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  39. 39. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coAutomatizando tarefas Qualquer programa com opcao de include, pode ser automatizado Apache, Samba, Bind Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  40. 40. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 41. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 42. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 43. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 44. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 45. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 46. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 47. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 48. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 49. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 50. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 51. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 52. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 53. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 54. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, 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. 55. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, transform, loading Pequel ETL Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  56. 56. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coPL/Perl - PL/PerlU Palesta do David Fetter ( http://fetter.org ) Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  57. 57. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coData 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. 58. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coData 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. 59. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coData 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. 60. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coData 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. 61. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coData 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. 62. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coBibliografia 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. 63. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coObrigado Duvidas? lorn at lornlab dot org Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  64. 64. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coObrigado Duvidas? lorn at lornlab dot org Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s

×