Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduo
Esta uma apresentao introdutria da linguagem de programao Python, portanto no espere ver exemplos avanados de seu uso aqui. O objetivo desta apresentao mostrar a linguagem Python, sua sintaxe, seu uso e alguns exemplos prticos para administrao de sistemas. Os exemplos usados so programas utilizados em vrios ambientes reais, principalmente na funo de consultor onde o objetivo era fazer as tarefas o melhor possvel com o menor tempo possvel (tempo dinheiro). Os programas apresentados so testados e geralmente utilizados em vrias plataformas (Debian, FreeBSD, OpenBSD, Solaris e at Windows...).
Histria do Python
Python foi criado no incio dos anos 90 por Guido van Rossum no Stichting Mathematisch Centrum, CWI, http://www.cwi.nl/ , Holanda, como um sucessor da linguagem chamada ABC. Em 1995, Guido continuou seu trabalho em Python na Corporation for National Research Initiatives, CNRI, http://www.cnri.reston.va.us/ , em Reston, Virginia, onde ele lanou vrias verses do programa.
http://www.opensource.org/ para a denio de cdigo aberto). Historicamente a maioria, mas no todas, das verses de Python tm tambm sido compatveis com a GPL.
Administrao de sistemas usando Python p.4
Descrio
Python, em poucas linhas, : Linguagem de scripts Orientada objetos Com a possibilidade de gerao de byte-code Multiplataforma - mquina virtual Com caracterstica de laos atravs de identao Sem tipos!!! Rpida prototipagem Fcil integrao com C e Java
Documentao e Bibliograa
http://www.python.org/doc/current/tut/tut.html - Python Tutorial http://www.python.org/doc/current/lib/lib.html - Python Library Reference /usr/share/doc/python2.1/html/index.html - documentao que acompanha a instalao do Python a /usr/share/doc/python2.1/examples/ - exemplos e demos interessantes ou via Debian: helio@pasargada in ~# apt-cache search python doc | more
a Referente
Estruturas de dados
nmeros num = 5 strings nome = Debian listas sistemas = [Debian, OpenBSD, FreeBSD] tuples sequencia = ( Debian, [ 1, 2 , 3 ], nome) dicionrios agenda = {helio: 999-333, macan: 1234} Exemplo: nome[0]: D nome[-1]: n nome[:-2]: Debi Obs: o smbolo # utilizado para marcar comentrio.
Administrao de sistemas usando Python p.10
Operadores aritmticos
adio subtrao diviso multiplicao exponenciao AND lgico and OR lgico or negao not
continue Continua o uxo do programa. break Finaliza o uxo. pass Executa sem realizar processamento.
Funes
Declarada com def: def minha_funcao(variavel): print variavel
Importando mdulos
Duas formas: import os os.system(uptime) ou from os import system system(uptime) O segundo formato mais rpido, pois todos os objetos e mtodos no so importados. O arquivo com mdulo precisar ter uma das extenses: py ou pyc ou pyo.
Controle de excees
try: <cdigo> except KeyboardInterrupt: <cdigo> except: pass
30 minutos
Espero estar chegando aqui aps 30 minutos, onde vimos: A origem do Python Onde usado Python O que Python Uma certa idia de como usar Dvidas???
Hello World!
#! /usr/bin/python mensagem="Hello World!" print mensagem print "%s" % mensagem
Autenticao
Mdulo criado para iniciar autenticao de programas (nunca saiu do estgio inicial...); um bom exemplo do uso de classes, simples de entender. Veja o arquivo autenticacao.py
Laserlter
Programa criado para corrigir o problema do efeito escada nas impresses; utilizado em uma impressora laser nesse exemplo; o objetivo do ltro substituir no nal de cada linha o n por M n.
Backup
Programa para realizar backups; poderia ter sido feito em shell script; mas est em Python para mostrar a diferena. Veja o arquivo backup.py.
Usando um execv()
Programa para animar o ambiente; seleciona aleatoriamente um arquivo para tocar; usada uma chamada execv() para executar ao invs de system(). Veja o arquivo mpy3layer.py.
Boot advertisement
Usando em ambiente os as mquinas recebem IP via DHCP; evita a solicitao de registro de IP xo para algumas mquinas; na mquina cliente, que inicializa via DHCP, executado um shell script; no servidor, com o web habilitado, executado um CGI em Python para tratamento das informaes; a informao vericada com uso de MD5; se confere, enviada por mail. Nesse exemplo, o servidor roda em uma mquina FreeBSD, enquanto que o cliente, OpenBSD. Veja os arquivos system.cgi e bootadvertise.
MRTG
Usado para vericar algumas funes da mquina: load average (carregamento) uptime utilizaes de disco servidor Quake
ADSL
Utilizado para vericar o status do link ADSL com um modem Parks; feito para conexo business, mas pode ser modicado para home; funciona tal qual um telnet no modem, seguindo a seqncia para dar um reset na linha ADSL (para perda de sinal sem o re-trainning); atualmente no funciona muito, j que o problema de perda de sincronismo mnimo; mas ajuda a saber o estado da linha. Veja o arquivo adsl_check.py.
Administrao de sistemas usando Python p.32
Grco ADSL
Automao de provedor
Criado durante uma consultoria a um provedor; para inserir automagicamente o cliente no servio de mail de sua empresa (virtualhost do sendmail); alm de registrar seu domnio (named); e criar seu site default na web (apache). Problemas com permisses: Python no funciona setuid! Para ativar setuid ou utiliza-se o sudo ou cria-se um programa em C com uma chamada system()/execv() e altera-se as permisses deste para setuid (chmod 4755). Veja os arquivos suporte.py e dominio.py
Administrao de sistemas usando Python p.34
Pyqt e Qt-designer
wxPython
Biblioteca semelhante MFC, Microsoft Foundation Classes, mas GPL e multi-plataforma; existe para Python e C++, entre outras; no existe um RAD para desenvolvimento, como pyqt.