|
Python - Como criar scripts para executar comandos systemctl com segurança | |
| @CanalQb | ||
Como executar comandos do systemctl no Linux usando scripts Python com subprocess
Para automatizar tarefas administrativas no Linux, como gerenciar serviços com systemctl, o Python oferece o módulo subprocess, que permite executar comandos do sistema diretamente do seu script. Isso é útil para administrar serviços, reiniciar módulos ou coletar logs de forma programática.
Exemplo de script Python para controlar serviços do Linux usando systemctl de forma segura
Veja abaixo um exemplo prático que demonstra como executar diversos comandos relacionados a serviços systemd, usando a função subprocess.call():
import subprocess
# Para parar o serviço 'teste.service'
subprocess.call(['sudo', 'systemctl', 'stop', 'teste.service'])
# Para recarregar o daemon do systemd
subprocess.call(['sudo', 'systemctl', 'daemon-reload'])
# Para habilitar o serviço para iniciar automaticamente
subprocess.call(['sudo', 'systemctl', 'enable', 'teste.service'])
# Para iniciar o serviço
subprocess.call(['sudo', 'systemctl', 'start', 'teste.service'])
# Para verificar o status do serviço
subprocess.call(['sudo', 'systemctl', 'status', 'teste.service'])
# Para visualizar os últimos 100 logs do serviço
subprocess.call(['sudo', 'journalctl', '-u', 'teste.service', '-n', '100'])
# Para reiniciar o módulo systemd-modules-load
subprocess.call(['systemctl', 'restart', 'systemd-modules-load'])
Recomendações para uso correto e seguro do script Python com comandos administrativos no Linux
- Certifique-se de que o usuário que executa o script possui permissões necessárias para usar
sudosem senha, ou esteja preparado para inserir a senha manualmente quando solicitado. - Teste cada comando individualmente no terminal antes de incluir no script para evitar falhas inesperadas.
- Considere tratar exceções e erros no Python para melhor controle e logging, usando
subprocess.run()com parâmetros adicionais para captura de saída. - Evite executar scripts com privilégios elevados sem compreender totalmente o impacto dos comandos para não comprometer a segurança do sistema.
Dicas para aprimorar seus scripts Python de automação no Linux
Além do uso básico do módulo subprocess, explore recursos avançados como:
- Captura e análise de saída dos comandos para automação inteligente.
- Utilização de bibliotecas especializadas como
psutilpara monitoramento de processos e serviços. - Automação de tarefas repetitivas integrando scripts Python com ferramentas de agendamento como
cron.
Para mais informações e exemplos completos sobre automação Linux com Python, consulte a documentação oficial do Python: subprocess — subprocess management.
Importante: Sempre avalie os riscos e a segurança ao executar comandos administrativos via scripts. Use essas práticas com responsabilidade para evitar problemas no seu sistema.

Comentários
Comente só assim vamos crescer juntos!