Your SlideShare is downloading. ×

perl sysadmin dba

998

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
998
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. 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 coAgenda 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 coAgenda 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 coAgenda 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 coAgenda 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 coAgenda 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 coAgenda 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 coAgenda 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 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coOne-liners Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coExtract, transform, loading Pequel ETL Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s
  • 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. 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. 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. 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. 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. 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. 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. 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. Introdu¸˜o ca Sysadmin DBA Considera¸˜es finais coObrigado Duvidas? lorn at lornlab dot org Lindolfo ”Lorn” Rodrigues Perl para Sysadmins e DBA’s

×