Python não serve só para web apps e machine learning. No terminal, é uma navalha suíça que substitui grep, awk, sed e curl: tudo ao mesmo tempo, com uma legibilidade que o Bash nunca terá.
Quando comecei como sysadmin, o meu dia era um loop de comandos: grep | awk | sort | uniq -c | sort -rn. Funcionava, mas cada pipeline era um castelo de cartas. Um espaço a mais, uma regex mal escapada, e o output ia para o lixo.
Python mudou isso. Com re, pathlib, subprocess e argparse, consigo fazer em 30 linhas o que antes eram 5 pipes frágeis. E o código fica legível, reutilizável e com tratamento de erros a sério.
Vou mostrar-te:
- Parsing de logs com regex e o módulo re
- Web scraping com requests + BeautifulSoup
- Automação de tarefas com shutil, pathlib e subprocess
- CLIs profissionais com argparse e click
- Boas práticas: type hints, logging, virtualenvs
- Exemplo prático: parse de logs Apache para CSV
⬆ Script de parsing de logs Apache em Python com output colorido e argumentos CLI
Parsing de logs com re
Os logs são o pão nosso de cada dia do sysadmin. Em Bash, fazes grep | cut | sort. Em Python, fazes uma regex que captura logo os campos todos:
Dica: Compila a regex com re.compile() uma vez, fora do loop. É muito mais rápido do que compilar de novo para cada linha. Num ficheiro com 100k linhas, a diferença é de segundos para minutos.
Web scraping com requests + beautifulsoup
Precisas de monitorizar uma página que não tem API? Python é o teu aliado:
Automação de tarefas: shutil, pathlib, subprocess
O trio que substitui a maioria dos comandos de shell em Python. pathlib para caminhos, shutil para operações de ficheiros, subprocess para comandos externos.
Atenção: Prefere subprocess.run() com check=True em vez de os.system(). O primeiro lança exceção se o comando falhar, o segundo engole erros silenciosamente.
CLI com argparse e click
Um bom script de sysadmin precisa de argumentos. O argparse vem incluído no Python e é mais que suficiente para 90% dos casos:
Para algo mais declarativo, o click é fantástico:
Boas práticas para scripts de sysadmin
| Prática | Porquê |
|---|---|
| if __name__ == "__main__" | Permite importar funções sem executar o script. Essencial para testes e reutilização |
| Type hints | Documentam o código e permitem deteção de erros com mypy/pyright |
| logging em vez de print | Níveis (INFO, ERROR, DEBUG), output para ficheiro, formatação consistente |
| Virtualenvs | Isolam dependências. Usa python -m venv .venv e pip install -r requirements.txt |
| pathlib em vez de os.path | API moderna, orientada a objetos, mais legível e menos propensa a erros |
Exemplo prático: analisador de logs Apache
Saída do script:
Recapitulando
- Logs: re.compile() + named groups para parsing rápido e legível
- Web scraping: requests + BeautifulSoup para monitorização sem API
- Automação: pathlib + shutil + subprocess.run(check=True)
- CLI: argparse para o básico, click para algo mais declarativo
- Boas práticas: type hints, logging, __name__ == "__main__", virtualenvs
- Exemplo completo: parser de logs Apache com output CSV
Python é a ferramenta mais versátil que um sysadmin pode ter na caixa. A curva de aprendizagem é curta, o retorno é enorme.
Pega num script teu que uses grep | awk | sort e reescreve-o em Python. Vais ver que fica mais legível, mais robusto e mais fácil de manter.
Comentários (0)
Nenhum comentário ainda. Seja o primeiro!
Deixar comentário