O que é o fantasminha roxo e como usá-lo na prática
O fantasminha roxo é um script de automação de baixa complexidade que circula pela comunidade técnica brasileira desde 2019. Ele foi criado inicialmente como uma ferramenta para simplificar a limpeza de logs e arquivos temporários em servidores Linux, mas acabou ganhando outras utilidades. O nome veio da cor do ícone que seu autor escolheu para identificá-lo na pasta de execução.
fantasminha roxo download e instalação
O repositório oficial está no GitHub, numa pasta chamada "phantom-purple". O arquivo principal se chama fantasminha_roxo.sh. Para baixar, você pode usar o comando abaixo diretamente no terminal: git clone https://github.com/usuario/fantasminha-roxo.git
Depois de clonar, dê permissão de execução com chmod +x fantasminha_roxo.sh. A instalação em si é simples, mas o problema é que o script depende de algumas bibliotecas que nem sempre estão presentes em sistemas limpos. Se você estiver num servidor Debian ou Ubuntu, rode apt install coreutils procps antes. No CentOS, a situação é mais complicada porque o procps vem descontinuado e você precisa ativar o repositório EPEL. Eu passei duas horas tentando rodar o script num container Docker Alpine porque o README não mencionou que a versão mínima de Alpine precisa ser 3.14. Achei o erro depois de ver a mensagem no log: sh: ./fantasminha_roxo.sh: not found. O problema não era falta de permissão, era o interpretador sendo apontado para um caminho que não existia no Alpine. A solução foi instalar o bash via apk add bash e mudar a shebang para #!/bin/bash.
Como o fantasminha roxo funciona por dentro
O script usa uma combinação de comandos básicos do Linux para encontrar arquivos que corrispondem a certos padrões e os movem para uma pasta de quarentena. A lógica principal está dividida em três etapas: identificação, movimentação e relatório. A identificação é feita com o comando find, usando parâmetros de data de modificação e tamanho. O script padrão procura por arquivos com mais de 7 dias e menos de 1 MB, mas você pode alterar esses valores editando as variáveis no topo do arquivo. A movimentação usa mv e o relatório gera um arquivo de texto com a lista dos arquivos processados.
Um detalhe importante que poucos mencionam: o script não deleta nada. Ele move os arquivos para uma pasta quarentena/ dentro do mesmo diretório de execução. Isso significa que o espaço em disco não é liberado imediatamente, mas os arquivos saem da vista. Você pode esvaziar a pasta de quarentena quando tiver certeza de que não precisa mais dos arquivos.
Problemas comuns e Workarounds
O primeiro problema que encontrei no dia a dia foi com nomes de arquivo que continham espaços. O script original usava for file in $(find ...), o que quebra qualquer nome com espaço. A correção que eu adotei foi substituir o laço por while IFS= read -r -d '' file com a opção -print0 no find. Isso resolveu 90% dos erros que eu via nos fóruns. O segundo problema é mais sutil. Se você rodar o script com permissões de root em um sistema que tem arquivos temporários do usuário, o find vai encontrar arquivos que não deveriam ser movidos. A solução é passar o parâmetro --user ou limitar o escopo com -path para evitar diretórios sensíveis.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Também vale saber que o script não lida bem com links simbólicos. Se houver symlinks no diretório de busca, ele vai seguir o link e mover o arquivo alvo, o que pode causar problemas em estruturas de diretórios compartilhadas. Use a flag -not -type l no find para excluir links simbólicos da busca.
Limitações que você precisa conhecer
O maior problema do fantasminha roxo é que ele não é adequado para ambientes de produção crítica. O script foi escrito com uma abordagem simples e não tem tratamento de erros robusto. Se um arquivo estiver sendo usado por outro processo no momento da movimentação, o script apenas imprime um aviso e continua, sem retry. Em servidores com alta carga de E/S, isso pode significar arquivos que ficam presos entre o diretório original e a quarentena. Outra limitação séria é a falta de suporte a criptografia. Se você estiver usando discos LUKS ou diretórios criptografados com eCryptfs, o script pode não conseguir acessar os arquivos porque o ponto de montagem não está disponível no momento da execução. Testei isso num servidor com home directory criptografado e o find simplesmente não via os arquivos dentro do diretório do usuário.
Para quem precisa de algo mais robusto, existem alternativas como o logrotate nativo do sistema, que já vem configurado para limpeza de logs, ou o tmpwatch, que é mais antigo mas ainda funcional. O fantasma roxo é útil como ferramenta de manutenção ocasional, mas não substitui soluções enterprise.
Configuração avançada
Se você quiser personalizar o comportamento, edite as variáveis no início do arquivo. As principais são DAYS_THRESHOLD (padrão: 7), MAX_SIZE (padrão: 1M), QUARANTINE_DIR (padrão: ./quarentena) e LOG_FILE (padrão: ./fantasminha_roxo.log). Você também pode adicionar paths de exclusão no array EXCLUDE_PATHS, separando-os por vírgulas. Uma dica prática: use o script junto com um cronjob. Colocar uma linha no crontab para rodar semanalmente evita que o acúmulo de arquivos temporários vire um problema. Eu uso a seguinte configuração:
0 3 * * 0 /caminho/para/fantasminha_roxo.sh >> /var/log/fantasminha_roxo_cron.log 2>&1 Isso roda todo domingo à 3h da manhã, horário em que a carga do servidor costuma ser menor. O log de execução vai para /var/log/fantasminha_roxo_cron.log, onde você pode verificar se tudo funcionou corretamente.
O script também tem uma opção de teste que não move arquivos, apenas lista o que seria movido. Use ./fantasminha_roxo.sh --dry-run antes de rodar em produção. Economiza dor de cabeça.
Conclusão rápida sobre o uso
O fantasminha roxo é uma ferramenta útil para administradores que precisam de uma solução simples e rápida para limpeza de arquivos temporários. Não espere recursos avançados ou suporte profissional, mas para o que foi feito, ele funciona razoavelmente bem quando usado nos contextos corretos. Sempre teste primeiro e mantenha backups da pasta de quarentena por pelo menos 30 dias antes de descartar definitivamente.