9 - Administração Avançada e Troubleshooting

Processo de Boot do Linux Entender o processo de boot é essencial para troubleshooting de servidores que não iniciam corretamente. Sequência de Boot Etapa Componente Função 1 BIOS/UEFI Testa hardware (POST), encontra dispositivo de boot 2 Bootloader (GRUB2) Carrega o kernel e initramfs na memória 3 Kernel Inicializa hardware, monta root filesystem 4 initramfs Sistema de arquivos temporário para carregar drivers 5 systemd (PID 1) Primeiro processo, inicia todos os serviços 6 Target Estado final (multi-user, graphical) Analisar o Boot 1 2 3 4 5 6 7 8 9 10 11 # Tempo total de boot systemd-analyze # Tempo de cada serviço (mais lentos primeiro) systemd-analyze blame # Gráfico de boot (gera SVG) systemd-analyze plot > boot.svg # Cadeia crítica (o que atrasou o boot) systemd-analyze critical-chain Logs de Boot 1 2 3 4 5 6 7 8 9 10 11 # Logs do boot atual journalctl -b # Logs do boot anterior (útil após crash) journalctl -b -1 # Apenas erros do boot journalctl -b -p err # Mensagens do kernel dmesg -T | head -50 Targets (antigos Runlevels) Target Runlevel Descrição poweroff.target 0 Desligar rescue.target 1 Modo de recuperação (single user) multi-user.target 3 Modo texto com rede graphical.target 5 Modo gráfico reboot.target 6 Reiniciar 1 2 3 4 5 6 7 8 # Ver target atual systemctl get-default # Mudar target padrão sudo systemctl set-default multi-user.target # Mudar target agora (sem reiniciar) sudo systemctl isolate rescue.target Gerenciamento de Processos ps - Process Status 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # Todos processos ps aux # Processos do usuário ps -u usuario # Árvore de processos ps auxf pstree # Processos por CPU ps aux --sort=-%cpu | head # Processos por memória ps aux --sort=-%mem | head # Informações específicas ps -eo pid,user,cmd,%cpu,%mem top - Monitor em Tempo Real 1 2 3 4 5 6 7 8 9 10 # Iniciar top top # Comandos dentro do top: # h - ajuda # k - matar processo # r - renice processo # M - ordenar por memória # P - ordenar por CPU # q - sair htop - Top Melhorado 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Instalar sudo apt install htop # Executar htop # Recursos: # F2 - configuração # F3 - buscar # F4 - filtrar # F5 - árvore # F6 - ordenar # F9 - matar # F10 - sair kill - Terminar Processos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # Matar por PID kill 1234 # Forçar término kill -9 1234 kill -SIGKILL 1234 # Término gracioso kill -15 1234 kill -SIGTERM 1234 # Matar por nome killall firefox pkill firefox # Matar processos do usuário pkill -u usuario nice e renice - Prioridade 1 2 3 4 5 6 7 8 # Iniciar com prioridade (-20 a 19, menor = maior prioridade) nice -n 10 comando # Alterar prioridade renice -n 5 -p 1234 # Prioridade por usuário renice -n 10 -u usuario Processos em Background 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # Executar em background comando & # Listar jobs jobs # Trazer para foreground fg %1 # Enviar para background bg %1 # Suspender processo (Ctrl+Z) # Depois: bg para continuar em background # Desassociar do terminal nohup comando & systemd - Gerenciamento de Serviços systemctl - Controle de Serviços 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # Status do serviço systemctl status nginx # Iniciar serviço sudo systemctl start nginx # Parar serviço sudo systemctl stop nginx # Reiniciar serviço sudo systemctl restart nginx # Recarregar configuração sudo systemctl reload nginx # Habilitar no boot sudo systemctl enable nginx # Desabilitar no boot sudo systemctl disable nginx # Verificar se está habilitado systemctl is-enabled nginx # Verificar se está ativo systemctl is-active nginx Listar Serviços 1 2 3 4 5 6 7 8 9 10 11 # Todos serviços systemctl list-units --type=service # Serviços ativos systemctl list-units --type=service --state=active # Serviços que falharam systemctl list-units --type=service --state=failed # Serviços habilitados systemctl list-unit-files --type=service --state=enabled Criar Serviço Customizado 1 sudo vim /etc/systemd/system/meuapp.service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [Unit] Description=Minha Aplicação After=network.target [Service] Type=simple User=usuario WorkingDirectory=/opt/meuapp ExecStart=/opt/meuapp/start.sh Restart=always RestartSec=10 [Install] WantedBy=multi-user.target 1 2 3 4 5 6 # Recarregar systemd sudo systemctl daemon-reload # Habilitar e iniciar sudo systemctl enable meuapp sudo systemctl start meuapp Targets (Runlevels) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # Ver target atual systemctl get-default # Mudar target padrão sudo systemctl set-default multi-user.target # Targets comuns: # poweroff.target (runlevel 0) # rescue.target (runlevel 1) # multi-user.target (runlevel 3) # graphical.target (runlevel 5) # reboot.target (runlevel 6) # Mudar para target sudo systemctl isolate multi-user.target Gerenciamento de Disco df - Disk Free 1 2 3 4 5 6 7 8 # Espaço em disco df -h # Inodes df -i # Tipo de filesystem df -T du - Disk Usage 1 2 3 4 5 6 7 8 # Tamanho do diretório du -sh /var # Top 10 maiores diretórios du -h /var | sort -rh | head -10 # Tamanho de cada subdiretório du -h --max-depth=1 /var lsblk - Listar Dispositivos de Bloco 1 2 3 4 5 6 7 8 # Listar dispositivos lsblk # Com filesystem lsblk -f # Tamanhos em bytes lsblk -b fdisk - Particionar Disco 1 2 3 4 5 6 7 8 9 10 11 12 13 # Listar partições sudo fdisk -l # Particionar disco sudo fdisk /dev/sdb # Comandos dentro do fdisk: # m - ajuda # p - listar partições # n - nova partição # d - deletar partição # w - salvar e sair # q - sair sem salvar Formatar Partição 1 2 3 4 5 6 7 8 9 10 11 # ext4 sudo mkfs.ext4 /dev/sdb1 # xfs sudo mkfs.xfs /dev/sdb1 # btrfs sudo mkfs.btrfs /dev/sdb1 # Com label sudo mkfs.ext4 -L dados /dev/sdb1 Montar Filesystem 1 2 3 4 5 6 7 8 # Montar temporário sudo mount /dev/sdb1 /mnt # Desmontar sudo umount /mnt # Montar permanente (/etc/fstab) sudo vim /etc/fstab 1 2 3 # <device> <mount> <type> <options> <dump> <pass> /dev/sdb1 /dados ext4 defaults 0 2 UUID=xxx /backup ext4 defaults,noatime 0 2 1 2 3 4 5 # Montar tudo do fstab sudo mount -a # Ver UUID sudo blkid FSCK - Verificar e Reparar Sistemas de Arquivos O fsck (File System Check) verifica e repara inconsistências em sistemas de arquivos. Essencial quando o sistema não monta uma partição corretamente. ...

February 2, 2026 · Fabrício Machado
Cover

Troubleshooting Docker em Produção: Guia de Sobrevivência

Container parou, aplicação não responde, disco encheu do nada. Se você roda Docker em produção, já passou por isso. Aqui vai o que eu aprendi resolvendo esses problemas no mundo real. ...

March 27, 2026 · Fabrício Machado
Cover

Comandos Linux que Todo SRE Deveria Saber

Quando o alerta toca às 3 da manhã e o sistema está degradado, não adianta ter dashboard bonito se você não sabe investigar no terminal. Esses são os comandos que me salvaram em mais de uma década lidando com incidentes em produção. ...

March 26, 2026 · Fabrício Machado