Python para Administradores de Redes Linux

Emprego prático e teórico da linguagem de programação Python na resolução de problemas e desafios da administração de redes.

Ementa

  1. Introdução à linguagem Python
    • História e motivação
    • Versões e implementações: 2.x, 3.x, CPython, PyPy, Jython e IronPython
    • Modo interativo
    • Tipos de dados
    • Controle do fluxo e funções
    • Paradigmas
    • Biblioteca padrão
    • Criação e documentação de módulos personalizados
    • Instalação, gerenciamento e versionamento de módulos

  2. Manipulação e processamento de dados
    • Processamento e filtragem de informações com list comprehensions, map, reduce, filter, any e all
    • Tratamento e manipulação de exceções
    • Gerenciador de contexto
    • Manipulação de arquivos
    • Compressão de arquivos com zlib, bz2, zipfile e tarfile
    • Persistência de dados: serialização e banco relacional sqlite3
    • Manipulação de arquivos do LibreOffice

  3. Interação com o sistema operacional
    • Módulos argparse, platform, glob, shutil, sys, os e subprocesso
    • Manipulação de grupos e usuários UNIX com grp, pwd e spwd
    • Multithread e multiprocessamento

  4. Processamento de textos
    • Recursos do objeto String
    • Introdução às Expressões Regulares
    • Módulo re: metacaracteres, padrões, flags, agrupamento e compilação

  5. Conexões de rede e HTTP
    • Sockets TCP e UDP
    • Módulos urllib2 e httplib
    • Módulos externos: requests e splinter
    • Extração de informações online com crawlers
    • Automação de tarefas com webbots

  6. Protocolos de rede
    • FTP com o módulo ftplib
    • Envio de e-mails com smtplib
    • SSH com o módulo externo paramiko

  7. Criptografia e segurança
    • O módulo random
    • Codificação em base64
    • Codecs do objeto string
    • Geração de hashs MD5 e SHA's com o módulo hashlib
    • Estrutura das senhas do arquivo /etc/shadow
    • Cálculo de força bruta com o módulo itertools
    • Criptografia simétrica e assimétrica com o toolkit PyCrypto
    • Checagem de segurança (hardening) com o módulo HnTool

  8. Processamento gráfico
    • Processamento de imagens com o módulo PIL
    • Plotagem de gráficos com o módulo matplotlib

  9. Interface gráfica básica
    • Exemplo de PyGTK
    • Exemplo de PyQt
    • Visão geral da GUI Tkinter
    • TTK — Tk themed widgets

  10. Desenvolvimento Web básico
    • O módulo SimpleHTTPServer
    • Scripts CGI
    • Interface WSGI
    • Introdução ao framewrok web Django