python para administradores linux
DESCRIPTION
Apresentação feita em setembro de 2009 na Python Brasil [5] em Caxias do Sul - RSTRANSCRIPT
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