34
Python Brasil [5] Setembro de 2009 para Administradores Linux Jeronimo Zucco [email protected]

Python Para Administradores Linux

Embed Size (px)

DESCRIPTION

Apresentação feita em setembro de 2009 na Python Brasil [5] em Caxias do Sul - RS

Citation preview

Page 1: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

para Administradores Linux

Jeronimo [email protected]

Page 2: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

● 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

Quem sou eu ?

Page 3: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Page 4: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Mas eu sou um SYSADMIN,

não um Programador !

Page 5: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Sysadmins criam programas para realizar tarefas repetitivas

(e tediosas) com precisão – Todas as linguagens são

ferramentas !

Page 6: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Filosofia UNIX

“Do one thing and do it well”

Page 7: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

KISS Principle

“Keep it Simple, Stupid”

ou

“Keep it Short and Simple”

Page 8: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Python é melhor que Bash, Perl, Ruby, ... ?

(coloque sua linguagem preferida aqui)

Page 9: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

OK, OK... Então porque Python para o Sysadmin?

Page 10: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Python é fácil de aprender

sintaxe simples

1

Page 11: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Python é mais descritivo para estruturas de dados

complexas: listas, dicionários, tuplas (leitura

+ simples do código)

2

Page 12: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Python é fácil de manter

(alterar e expandir o código)

3

Page 13: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Python é simples mas pode resolver problemas complexos

(parser,xml,sockets,etc)

4

Page 14: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

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

5

Page 15: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Python tem mais bibliotecas que Ruby

"batteries included: Python Standard Library"

6

Page 16: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Python = + performance que shell scripts

7

Page 17: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Talk is cheap, show me the code !

Page 18: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Código em Bash

#!/bin/bash

for A in 1 2; do

for B in A B; do

echo "$A $B"

done

done

SAIDA:

1 A

1 B

2 A

2 B

Page 19: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Código em Perl

#!/usr/bin/perl

foreach $a ('1', '2') {

foreach $b ('a', 'b') {

print "$a $b\n";

}

}

Page 20: Python Para Administradores Linux

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

Page 21: Python Para Administradores Linux

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

Page 22: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Código em Perl

#!/usr/bin/perl

if (-d "/tmp") {

print "/tmp is a directory\n";

} else {

print "/tmp is not a directory\n";

}

Page 23: Python Para Administradores Linux

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"

Page 24: Python Para Administradores Linux

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'

Page 25: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Expressões Regulares

Page 26: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Lendo E-mails

Page 27: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Usando SSH

Page 28: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Gerando Gráficos

Page 29: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Gerando Gráficos

Page 30: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

Usando o tar

Page 31: Python Para Administradores Linux

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● ...

Page 32: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

IPYTHON

Page 33: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

?Perguntas

Page 34: Python Para Administradores Linux

Python Brasil [5]Setembro de 2009

OBRIGADO

[email protected]