Python Para Administradores Linux

Preview:

DESCRIPTION

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

Citation preview

Python Brasil [5]Setembro de 2009

para Administradores Linux

Jeronimo Zuccojczucco@ucs.br

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 ?

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

Python é fácil de aprender

sintaxe simples

1

Python Brasil [5]Setembro de 2009

Python é mais descritivo para estruturas de dados

complexas: listas, dicionários, tuplas (leitura

+ simples do código)

2

Python Brasil [5]Setembro de 2009

Python é fácil de manter

(alterar e expandir o código)

3

Python Brasil [5]Setembro de 2009

Python é simples mas pode resolver problemas complexos

(parser,xml,sockets,etc)

4

Python Brasil [5]Setembro de 2009

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

5

Python Brasil [5]Setembro de 2009

Python tem mais bibliotecas que Ruby

"batteries included: Python Standard Library"

6

Python Brasil [5]Setembro de 2009

Python = + performance que shell scripts

7

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

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

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";

}

}

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 directory\n";

} else {

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

}

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

Recommended