para Administradores Linux
        Jeronimo Zucco
        jczucco@ucs.br


                          Python Brasil [5]
                         Setembro de 2009
Quem sou eu ?


●   Analista de Suporte da UCS
●   Bacharel em Ciência da Computação - UCS
●   Especialista em Gerência e Segurança de
     Redes – UCS
●   Atua com Linux e servidores web desde 1998
●   Entusiasta de software de código aberto


                                               Python Brasil [5]
                                              Setembro de 2009
Python Brasil [5]
Setembro de 2009
Mas eu sou um SYSADMIN,
  não um Programador !



                     Python Brasil [5]
                    Setembro de 2009
Sysadmins criam programas
para realizar tarefas repetitivas
  (e tediosas) com precisão –
   Todas as linguagens são
          ferramentas !

                               Python Brasil [5]
                              Setembro de 2009
Filosofia UNIX




“Do one thing and do it well”



                           Python Brasil [5]
                          Setembro de 2009
KISS Principle

 “Keep it Simple, Stupid”

           ou

“Keep it Short and Simple”
                        Python Brasil [5]
                       Setembro de 2009
Python é melhor que Bash,
     Perl, Ruby, ... ?
 (coloque sua linguagem
      preferida aqui)

                        Python Brasil [5]
                       Setembro de 2009
OK, OK... Então porque
Python para o Sysadmin?


                      Python Brasil [5]
                     Setembro de 2009
1


Python é fácil de aprender

     sintaxe simples

                        Python Brasil [5]
                       Setembro de 2009
2

 Python é mais descritivo
para estruturas de dados
    complexas: listas,
dicionários, tuplas (leitura
   + simples do código)
                          Python Brasil [5]
                         Setembro de 2009
3


Python é fácil de manter

(alterar e expandir o código)


                            Python Brasil [5]
                           Setembro de 2009
4


 Python é simples mas pode
resolver problemas complexos

 (parser,xml,sockets,etc)

                          Python Brasil [5]
                         Setembro de 2009
5



Python é mais "legível" que
 Perl - mais fácil de manter


                          Python Brasil [5]
                         Setembro de 2009
6

  Python tem mais
bibliotecas que Ruby
   "batteries included:
Python Standard Library"
                       Python Brasil [5]
                      Setembro de 2009
7



Python = + performance
   que shell scripts

                    Python Brasil [5]
                   Setembro de 2009
Talk is cheap,
show me the code !

                 Python Brasil [5]
                Setembro de 2009
Código em Bash

#!/bin/bash               SAIDA:
                               1A
                               1B
for A in 1 2; do
                               2A
 for B in A B; do              2B
  echo "$A $B"
 done
done
                            Python Brasil [5]
                           Setembro de 2009
Código em Perl

#!/usr/bin/perl

foreach $a ('1', '2') {
  foreach $b ('a', 'b') {
    print "$a $bn";
  }
}                            Python Brasil [5]
                            Setembro de 2009
Código em Python

#!/usr/bin/env python

for a in [1, 2]:
 for b in ['a', 'b']:
  print a, b

                            Python Brasil [5]
                           Setembro de 2009
Código em Bash

#!/bin/bash

if [ -d "/tmp" ] ; then
  echo "/tmp is a directory"
else
  echo "/tmp is not a directory"
fi                              Python Brasil [5]
                               Setembro de 2009
Código em Perl

#!/usr/bin/perl

if (-d "/tmp") {
  print "/tmp is a directoryn";
} else {
  print "/tmp is not a directoryn";
}
                                        Python Brasil [5]
                                       Setembro de 2009
Código em Python

#!/usr/bin/env python

import os
if os.path.isdir("/tmp"):
  print "/tmp is a directory"
else:
  print "/tmp is not a directory"
                                     Python Brasil [5]
                                    Setembro de 2009
Alguns Exemplos Python
>>> import os
>>> os.mkdir("/tmp/teste")


>>> import os
>>> dir(os)
'abort', 'access', 'altsep', 'chdir',
'chmod', 'chown', 'chroot',
'close','getcwd', 'getenv', 'geteuid',
'getgid', 'getgroups', 'getlogin', 'getpid',
'getppid', 'getsid', 'getuid', 'isatty', 'kill'
                                             Python Brasil [5]
                                            Setembro de 2009
Expressões Regulares




                        Python Brasil [5]
                       Setembro de 2009
Lendo E-mails




                 Python Brasil [5]
                Setembro de 2009
Usando SSH




              Python Brasil [5]
             Setembro de 2009
Gerando Gráficos




                    Python Brasil [5]
                   Setembro de 2009
Gerando Gráficos




                    Python Brasil [5]
                   Setembro de 2009
Usando o tar




                Python Brasil [5]
               Setembro de 2009
Projetos/Bibliotecas

●   Twisted (Framework for network app)
●   Scapy (Packet Manipulation Program)
●   SQLMap (Automatic SQL Injection Tool)
●   Pcapy (interface with libpcap)
●   Bacula Python Scripts
●   ...



                                             Python Brasil [5]
                                            Setembro de 2009
IPYTHON

           Python Brasil [5]
          Setembro de 2009
?
Perguntas

             Python Brasil [5]
            Setembro de 2009
OBRIGADO

jczucco@gmail.com


                     Python Brasil [5]
                    Setembro de 2009

Python Para Administradores Linux

  • 1.
    para Administradores Linux Jeronimo Zucco jczucco@ucs.br Python Brasil [5] Setembro de 2009
  • 2.
    Quem sou eu? ● Analista de Suporte da UCS ● Bacharel em Ciência da Computação - UCS ● Especialista em Gerência e Segurança de Redes – UCS ● Atua com Linux e servidores web desde 1998 ● Entusiasta de software de código aberto Python Brasil [5] Setembro de 2009
  • 3.
  • 4.
    Mas eu souum SYSADMIN, não um Programador ! Python Brasil [5] Setembro de 2009
  • 5.
    Sysadmins criam programas pararealizar tarefas repetitivas (e tediosas) com precisão – Todas as linguagens são ferramentas ! Python Brasil [5] Setembro de 2009
  • 6.
    Filosofia UNIX “Do onething and do it well” Python Brasil [5] Setembro de 2009
  • 7.
    KISS Principle “Keepit Simple, Stupid” ou “Keep it Short and Simple” Python Brasil [5] Setembro de 2009
  • 8.
    Python é melhorque Bash, Perl, Ruby, ... ? (coloque sua linguagem preferida aqui) Python Brasil [5] Setembro de 2009
  • 9.
    OK, OK... Entãoporque Python para o Sysadmin? Python Brasil [5] Setembro de 2009
  • 10.
    1 Python é fácilde aprender sintaxe simples Python Brasil [5] Setembro de 2009
  • 11.
    2 Python émais descritivo para estruturas de dados complexas: listas, dicionários, tuplas (leitura + simples do código) Python Brasil [5] Setembro de 2009
  • 12.
    3 Python é fácilde manter (alterar e expandir o código) Python Brasil [5] Setembro de 2009
  • 13.
    4 Python ésimples mas pode resolver problemas complexos (parser,xml,sockets,etc) Python Brasil [5] Setembro de 2009
  • 14.
    5 Python é mais"legível" que Perl - mais fácil de manter Python Brasil [5] Setembro de 2009
  • 15.
    6 Pythontem mais bibliotecas que Ruby "batteries included: Python Standard Library" Python Brasil [5] Setembro de 2009
  • 16.
    7 Python = +performance que shell scripts Python Brasil [5] Setembro de 2009
  • 17.
    Talk is cheap, showme the code ! Python Brasil [5] Setembro de 2009
  • 18.
    Código em Bash #!/bin/bash SAIDA: 1A 1B for A in 1 2; do 2A for B in A B; do 2B echo "$A $B" done done Python Brasil [5] Setembro de 2009
  • 19.
    Código em Perl #!/usr/bin/perl foreach$a ('1', '2') { foreach $b ('a', 'b') { print "$a $bn"; } } Python Brasil [5] Setembro de 2009
  • 20.
    Código em Python #!/usr/bin/envpython for a in [1, 2]: for b in ['a', 'b']: print a, b Python Brasil [5] Setembro de 2009
  • 21.
    Código em Bash #!/bin/bash if[ -d "/tmp" ] ; then echo "/tmp is a directory" else echo "/tmp is not a directory" fi Python Brasil [5] Setembro de 2009
  • 22.
    Código em Perl #!/usr/bin/perl if(-d "/tmp") { print "/tmp is a directoryn"; } else { print "/tmp is not a directoryn"; } Python Brasil [5] Setembro de 2009
  • 23.
    Código em Python #!/usr/bin/envpython import os if os.path.isdir("/tmp"): print "/tmp is a directory" else: print "/tmp is not a directory" Python Brasil [5] Setembro de 2009
  • 24.
    Alguns Exemplos Python >>>import os >>> os.mkdir("/tmp/teste") >>> import os >>> dir(os) 'abort', 'access', 'altsep', 'chdir', 'chmod', 'chown', 'chroot', 'close','getcwd', 'getenv', 'geteuid', 'getgid', 'getgroups', 'getlogin', 'getpid', 'getppid', 'getsid', 'getuid', 'isatty', 'kill' Python Brasil [5] Setembro de 2009
  • 25.
    Expressões Regulares Python Brasil [5] Setembro de 2009
  • 26.
    Lendo E-mails Python Brasil [5] Setembro de 2009
  • 27.
    Usando SSH Python Brasil [5] Setembro de 2009
  • 28.
    Gerando Gráficos Python Brasil [5] Setembro de 2009
  • 29.
    Gerando Gráficos Python Brasil [5] Setembro de 2009
  • 30.
    Usando o tar Python Brasil [5] Setembro de 2009
  • 31.
    Projetos/Bibliotecas ● Twisted (Framework for network app) ● Scapy (Packet Manipulation Program) ● SQLMap (Automatic SQL Injection Tool) ● Pcapy (interface with libpcap) ● Bacula Python Scripts ● ... Python Brasil [5] Setembro de 2009
  • 32.
    IPYTHON Python Brasil [5] Setembro de 2009
  • 33.
    ? Perguntas Python Brasil [5] Setembro de 2009
  • 34.
    OBRIGADO jczucco@gmail.com Python Brasil [5] Setembro de 2009