Successfully reported this slideshow.

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

perl sysadmin dba

  1. 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. 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 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 25. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais co One-liners Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  26. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×