Troubleshooting de Operações com Arquivos
Diagnóstico Sistemático
🔍 Verificação Inicial
# Checagem básica
ls -la # Permissões e propriedade
df -h # Espaço em disco
pwd # Confirma diretório atual
whoami # Confirma usuário atual
📊 Análise Detalhada
# Investigação profunda
strace cp arquivo1 arquivo2 # Debug de sistema
lsof arquivo # Arquivos abertos
fuser -v arquivo # Processos usando arquivo
iostat -x 1 # Monitoramento de I/O
Problemas Comuns e Soluções
🚫 Permissão Negada
# Diagnóstico
namei -l /caminho/completo # Verifica cadeia de permissões
getfacl arquivo # Lista ACLs
sudo -l # Lista permissões sudo
# Correção
chmod u+rw arquivo # Adiciona permissões
chown usuario:grupo arquivo # Muda proprietário
setfacl -m u:usuario:rw arquivo # Configura ACL
💾 Espaço em Disco
# Análise
du -sh * | sort -hr # Uso por diretório
find . -size +100M # Arquivos grandes
ncdu # Navegador de uso
# Limpeza
find . -name "*.tmp" -delete # Remove temporários
journalctl --vacuum-time=2d # Limpa logs antigos
docker system prune # Limpa Docker
🔒 Arquivos Travados
# Identificação
lsof | grep arquivo # Processos usando
fuser -k arquivo # Mata processos (cuidado!)
# Liberação
sync # Sincroniza buffers
umount -l /montagem # Desmonta forçado
🔗 Links Quebrados
# Detecção
find . -type l -! -exec test -e {} \; -print # Links quebrados
readlink -f link # Resolve link
# Correção
ln -sf alvo link # Recria link simbólico
find . -xtype l -delete # Remove links quebrados
Scripts de Diagnóstico
📝 Verificador de Sistema de Arquivos
#!/bin/bash
# fs_check.sh
check_filesystem() {
local path="${1:-.}"
echo "=== Verificação do Sistema de Arquivos ==="
echo "Diretório: $path"
echo
echo "1. Espaço em Disco:"
df -h "$path"
echo
echo "2. Permissões Suspeitas:"
find "$path" -type f -perm /o+w
echo
echo "3. Links Quebrados:"
find "$path" -type l -! -exec test -e {} \; -print
echo
echo "4. Arquivos Grandes (>100MB):"
find "$path" -type f -size +100M -exec ls -lh {} \;
}
🔄 Monitor de Operações
#!/bin/bash
# ops_monitor.sh
monitor_operations() {
local file="$1"
echo "Monitorando operações em $file..."
inotifywait -m "$file" |
while read -r directory events filename; do
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $events"
case "$events" in
OPEN) check_open "$file" ;;
MODIFY) check_modify "$file" ;;
ACCESS) check_access "$file" ;;
esac
done
}
Prevenção e Manutenção
🛡️ Backup Automático
#!/bin/bash
# auto_backup.sh
backup_before_operation() {
local file="$1"
local backup_dir="${2:-./backup}"
local timestamp=$(date +%Y%m%d_%H%M%S)
mkdir -p "$backup_dir"
cp -a "$file" "$backup_dir/${file##*/}_$timestamp"
}
📋 Checklist de Manutenção
# Verificações Diárias
find /var/log -type f -mtime +30 -delete # Limpa logs
find /tmp -type f -mtime +7 -delete # Limpa temporários
du -sh /* | sort -hr > disk_usage.log # Relatório de disco
Exercícios Práticos
🎯 Missão 1: Sistema de Diagnóstico
# Desenvolva um sistema que:
# 1. Monitore operações críticas
# 2. Detecte problemas comuns
# 3. Aplique correções automáticas
# 4. Mantenha logs de troubleshooting
🎯 Missão 2: Recuperação de Desastres
# Crie um plano que:
# 1. Identifique falhas críticas
# 2. Implemente backups automáticos
# 3. Defina procedimentos de recuperação
# 4. Teste cenários de falha
Próximos Passos
DIAGNÓSTICO
[🔍🔍🔍🔍🔍] 100%
STATUS: RESOLVIDO
SISTEMA: ESTÁVEL
14 abril 2025