Uma breve apresentação sobre o treinamento e sobre o instrutor
•O que é Shell Script?
Introdução ao conceito de Shell Script e suas aplicações para automação de tarefas repetitivas e complexas.
•Importância no DevOps:
Como Shell Script é fundamental para pipelines de deploy, monitoramento e gestão de sistemas.
•Comparação entre Diferentes Shells:
Análise de sh, bash, zsh, e fish com foco em suas vantagens e limitações.
•Ambientes de Desenvolvimento:
Configuração de ambientes em Linux, macOS e Windows (com WSL).
•Ferramentas Recomendadas:
Editores de texto e terminais que facilitam a escrita e depuração de scripts.
•Navegação no Sistema de Arquivos:
Comandos como ls, cd, e pwd para explorar diretórios.
•Gerenciamento de Arquivos e Diretórios:
Operações com cp, mv, rm, mkdir, chmod, chown, e ln.
•Manipulação de Arquivos:
Ferramentas para exibir e processar arquivos como cat, grep, sed, awk, cut, e outros.
•Diagnóstico e Informações do Sistema:
Monitore processos com ps, top, df, du, e analise recursos do sistema.
•Redirecionamento e Pipes:
Combine comandos com | e redirecione saídas para arquivos.
•Transferência de Arquivos:
Utilize scp, rsync e ssh para sincronização e acesso remoto.
•Outros Utilitários:
Comandos como basename, dirname, man, wc, entre outros.
•Shebang:
Configure o interpretador correto com a linha inicial #!/bin/bash.
•Definição de Variáveis:
Tipos de variáveis (locais, ambiente e especiais como $?, $@).
•Entrada e Saída:
Manipulação de stdin, stdout, e stderr em scripts.
•Funções:
Criação de funções reutilizáveis para scripts modulares.
•Boas Práticas:
Estruturação, documentação e validação de erros em scripts.
•Condicionais:
Controle lógico com if, else, elif e comandos case e select.
•Estruturas de Repetição:
Loops com for, while, e until, e controle com break e continue.
•Expressões no Estilo C/C++:
Utilização de sintaxe avançada para maior flexibilidade em scripts.
•Expansão de Variáveis:
Manipulação dinâmica de variáveis e parâmetros.
•Expansão de Comandos:
Integração de saídas de comandos diretamente em scripts.
•Outras Expansões:
Trabalhe com substrings, aritmética, tilde, e globbing (nomes de arquivos).
•Criação de Funções:
Definição de funções reutilizáveis para organizar scripts.
•Passagem de Parâmetros:
Como passar e processar argumentos em funções.
•Modularização:
Organização de scripts em módulos para maior manutenção.
•Introdução às Opções:
Tipos de opções curtas e longas para personalizar scripts.
•Uso de getopts:
Implementação eficiente de parsing de argumentos.
•Exemplos Práticos:
Como lidar com múltiplas opções e valores nos scripts.
•Manuseio de Credenciais:
Práticas seguras para evitar o vazamento de dados sensíveis.
•Validação de Entrada:
Evite injeção de comandos com validações robustas.
•Práticas Recomendadas:
Uso de configurações seguras como set -e, set -u e set -o pipefail.
\
•Debug Simples:
Uso de echo para verificar valores intermediários.
•Debug Avançado:
Ferramentas como -x, -v, e execução passo a passo com set.
•Verificação de Sintaxe:
Identifique erros rapidamente com bash -n.
•Automação com cron e ssh:
Agende tarefas e automatize acessos remotos.
•Versionamento de Scripts:
Gerencie mudanças com Git para rastreabilidade.
•Boas Práticas:
Dicas para escrita de scripts limpos e fáceis de manter.
•Uso de Aspas:
Proteja valores de variáveis com aspas simples e duplas.
•Evite o Uso de eval:
Compreenda os riscos e utilize alternativas seguras.
•Comandos Concatenados:
Combine comandos com && para sucesso ou || para falhas.
•Prefira $() ao lugar de `:
Torne scripts mais legíveis e seguros.
•Rotinas Administrativas:
Scripts para backup, rotação de logs e gerenciamento de usuários.
•Automação DevOps:
Crie soluções para CI/CD e integração com ferramentas como Jenkins e Ansible.
•Exemplos de Scripts:
Tarefas práticas para deploys e monitoramento de processos.
•Exemplos Reais:
•Monitoramento de espaço em disco.
•Backup automático de banco de dados.
•Envio de relatórios por e-mail.
•Desafios e Exercícios:
Resolva problemas práticos, como limpeza automática e monitoramento de serviços.
•APIs REST:
Use curl e wget para acessar serviços remotos.
•Gerenciamento de Containers:
Scripts para automatizar tarefas no Docker e Kubernetes.
•Workflows Complexos:
Integração com sistemas como Zabbix e Nagios para monitoramento e alertas.
•Manipulação de Texto:
Ferramentas como grep, sed, awk, e cut.
•Manipulação de Arquivos:
Utilize find, rsync, scp, e tar.
•Ferramentas de Sistema:
Diagnóstico e monitoramento com ps, top, df, e du.
•Automatização Completa:
Scripts para backup, limpeza e integração com APIs.
•Configuração de Ambientes:
Scripts para inicializar projetos em Python, Node.js, PHP e Java.
•Automação de Builds e Testes:
Integração de testes automatizados com Shell Script.
•Integração com Git:
Automação de commits, branches e uso de Git Hooks.
•Manutenção Preventiva:
Scripts para rotação de logs, monitoramento de serviços e verificação de espaço em disco.
•Atualizações Automatizadas:
Automatize pacotes e manutenção do sistema.
•Gerenciamento de Usuários:
Soluções para criar, alterar ou monitorar usuários.
•Comandos Essenciais do Docker:
Scripts para criar e gerenciar contêineres.
•Automação no Kubernetes:
Implantações automatizadas e monitoramento de clusters.
•Integração com CI/CD:
Automatize pipelines com ferramentas como Jenkins.
•Monitoramento de Recursos:
Verifique CPU, memória e disponibilidade de serviços.
•Configuração de Alertas:
Scripts para enviar notificações por e-mail ou Slack.
•Análise de Logs:
Ferramentas para monitorar eventos críticos e gerar alertas.
•Comandos Básicos de AWS CLI:
Gerencie recursos na nuvem de forma automatizada.
•Tarefas Comuns:
Backup em S3, monitoramento com CloudWatch e gerenciamento de instâncias EC2.
•Melhores Práticas:
Segurança, resiliência e integração com pipelines.
Engenheiro DevOps e desenvolvedor de software com mais de 15 anos de experiência. Foco em programação back-end, gerenciamento de servidores e infraestrutura.
Autor do Blog do Beraldo, Beraldo’s Blog e do treinamento ULTIMATE PHP.
Palestrante da PHP Conference Brasil.