
Advanced Backups — Minecraft Java Edition 1.7.10 – 1.21.4
Dependências: · Carregador: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Versão do Minecraft: 1.7.10 - 1.21.4 · Versão do mod: 3.7.1 O…
Dependências: · Carregador: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Versão do Minecraft: 1.7.10 - 1.21.4 · Versão do mod: 3.7.1 O mecanismo padrão de backup no Minecraft Java Edition possui limitações sérias. No
Dependências:
· Carregador: Forge, NeoForge, Fabric, Quilt, Spigot, Paper
· Versão do Minecraft: 1.7.10 - 1.21.4
· Versão do mod: 3.7.1
O mecanismo padrão de backup no Minecraft Java Edition possui limitações sérias. No jogo vanilla, a criação de backups é feita manualmente através de um menu ou exige a parada do servidor para copiar os arquivos. Essas operações são executadas na thread principal do jogo, o que causa o bloqueio da jogabilidade, lags ou a indisponibilidade temporária do servidor durante a gravação de gigabytes de dados no disco. Além disso, o método padrão cria apenas cópias completas do mundo, enchendo rapidamente o dispositivo de armazenamento com dados duplicados. A modificação Advanced Backups resolve esses problemas oferecendo backups assíncronos agendados, com suporte aos modelos de compressão diferencial e incremental, uma limpeza flexível dos arquivos obsoletos e um utilitário integrado para a restauração de dados.
Mecanismos de backup: Zip, Differential e Incremental
O utilitário oferece três modos de processamento dos arquivos do mundo, que determinam o equilíbrio entre a velocidade de execução, o volume de espaço em disco utilizado e a confiabilidade da restauração:
· Zip (cópias completas): O princípio de funcionamento consiste em arquivar toda a pasta do mundo em um único arquivo .zip. Esse método é o mais exigente em recursos e requer a maior quantidade de espaço livre no dispositivo de armazenamento, pois cada backup contém todos os arquivos, independentemente de terem sido alterados ou não. Sua vantagem é a simplicidade da restauração — basta descompactar o arquivo necessário.
· Differential (backup diferencial): Baseia-se na criação de um único arquivo base completo ("full") e dos arquivos parciais subsequentes ("partial"). Os arquivos parciais registram apenas os arquivos que sofreram alterações desde a criação do arquivo base completo. O volume dos backups intermediários é reduzido de forma considerável. Para restaurar o estado do mundo em um determinado momento, são necessários apenas dois arquivos: o arquivo base completo e o último arquivo parcial anterior a essa data.
· Incremental (backup incremental): Também utiliza o conceito de arquivos completos e parciais. No entanto, cada arquivo parcial contém apenas as alterações ocorridas desde a criação do último arquivo parcial anterior. Isso minimiza a carga sobre o subsistema de disco e economiza a máxima quantidade de espaço livre. A desvantagem é um risco maior de perda de dados: se ao menos um arquivo da cadeia de cópias incrementais for danificado, será impossível restaurar as cópias subsequentes até a criação de um novo backup completo. O processo de restauração também é o mais lento, pois exige a mesclagem sequencial de toda a cadeia de arquivos.
A criação de novas cadeias é regulada pelos parâmetros config.advancedbackups.chains.length e config.advancedbackups.chains.maxpercent. O primeiro parâmetro define a quantidade máxima de cópias parciais em uma cadeia antes da criação forçada de um novo arquivo completo. O segundo parâmetro realiza uma verificação de tamanho: se o volume das alterações acumuladas em um arquivo parcial ultrapassar a porcentagem estabelecida em relação ao tamanho do arquivo completo, o sistema reinicia automaticamente a cadeia e cria um novo backup completo.
Sistema de limpeza automática (Purging) e trabalho com cadeias
Para evitar o transbordamento do disco, na modificação foram implementados três critérios de exclusão automática de dados obsoletos:
· Por número de dias de retenção (config.advancedbackups.purge.days).
· Por volume total da pasta de backups em gigabytes (config.advancedbackups.purge.size).
· Por quantidade total de arquivos de cópia (config.advancedbackups.purge.count).
Ao utilizar cópias diferenciais ou incrementais, a exclusão de arquivos individuais de uma cadeia é impossível, pois isso comprometeria a integridade dos dados. O mod opera com cadeias inteiras (chains). Uma cadeia é considerada obsoleta e é excluída somente quando todos os seus componentes (incluindo o backup base completo e todos os arquivos parciais associados) atendem aos critérios de limpeza. Por meio do parâmetro config.advancedbackups.purge.incrementalchains é possível definir a quantidade mínima de cadeias completas que o sistema é obrigado a manter, independentemente de outras restrições de limpeza. Além disso, o usuário pode criar "snapshots" (capturas): são cópias estáticas do mundo, protegidas contra a exclusão automática.
Configuração do arquivo AdvancedBackups.properties
Os parâmetros de funcionamento do sistema de backup são armazenados no arquivo AdvancedBackups.properties, que é criado no diretório config durante a primeira inicialização. As principais chaves de configuração:
Parâmetro | Valor padrão | Descrição |
| true | Permite ativar (true) ou desativar (false) completamente a criação automática de backups. |
| true | Determina se é necessário salvar de forma forçada o mundo no disco antes de realizar a cópia. |
| true | Desativa o salvamento automático padrão durante a criação da cópia e o reativa após a conclusão do processo. |
| 1048576 | Tamanho do buffer de entrada/saída em bytes. Um valor acima do limite de memória RAM pode causar uma falha OutOfMemoryError. |
| false | Esvaziamento forçado do cache de gravação do disco. Não é utilizado em versões do Minecraft anteriores à 1.16. |
| true | Verificação da atividade dos jogadores. Se não houve jogadores no servidor desde o último backup, a criação da cópia é ignorada. |
| differential | Tipo dos backups. Valores possíveis: zip (cópias completas), differential (backup diferencial), incremental (backup incremental). |
| session.lock,*_old | Lista de exclusões separadas por vírgula para os arquivos da pasta do mundo que não são adicionados ao arquivo (são permitidas máscaras como *). |
| ./backups | Caminho para o diretório onde são salvos os backups concluídos (relativo ou absoluto). |
| 0.25 | Intervalo mínimo permitido entre backups em horas. Evita a duplicação. 0 — desativado. |
| 24.0 | Intervalo máximo em horas após o qual o backup é iniciado de forma forçada, caso não tenha havido outras cópias bem-sucedidas. |
| true | Base do agendador: cálculo do tempo de funcionamento do servidor (true) ou tempo astronômico real do sistema operacional (false). |
| 1:00 | Lista de intervalos de criação das cópias (por exemplo, 1:00 para um backup a cada hora, ou o horário real exato 04:00,16:00). |
| false | Criação forçada de um backup do mundo durante a parada ou o desligamento do servidor. Respeita o limite frequency.min. |
| false | Criação de um backup do mundo durante a inicialização do servidor. Respeita o limite frequency.min. |
| 30 | Atraso do início do backup de inicialização em segundos após ligar o servidor. O valor mínimo é de 5 segundos. |
| ops | Categoria de destinatários das notificações toast sobre o processo de arquivamento no jogo (ops — operadores, all — todos, none — ninguém). |
| 500 | Frequência de envio dos pacotes de progresso aos jogadores em milissegundos. Valores mais baixos aumentam a carga de rede. |
| true | Permissão para exibir o progresso percentual detalhado do arquivamento no console do sistema do servidor. |
| 5000 | Intervalo de registro do andamento do backup no console em milissegundos. |
| 50.0 | Limite do volume total da pasta de cópias em gigabytes. As cópias mais antigas são excluídas em caso de excedente. 0 — desativado. |
| 0 | Prazo de retenção dos backups em dias. Os mais antigos são excluídos. 0 — desativado. |
| 0 | Quantidade máxima permitida de cópias no disco. As mais antigas são excluídas. 0 — desativado. |
| true | Permissão para excluir cadeias incrementais em caso de limpeza por volume. Se for false, as cópias incrementais nunca são limpas. |
| 1 | Quantidade mínima de cadeias incrementais que a limpeza é obrigada a deixar no disco em qualquer caso. |
| 4 | Nível de compressão dos arquivos ZIP (de 1 a 9). Valores maiores economizam espaço, mas sobrecarregam a CPU. |
| 50 | Quantidade máxima de backups parciais (diferenciais/incrementais) antes da criação de um novo arquivo completo. |
| true | Permissão para comprimir as cópias base completas e as cópias intermediárias subsequentes dentro das cadeias. |
| true | Reinício inteligente da cadeia. Se todos os arquivos do mundo foram alterados, a cópia se torna completa automaticamente. |
| 50.0 | Limite do tamanho do backup parcial em porcentagem em relação ao completo. Se for ultrapassado, é criado um backup completo. |
Comandos de gerenciamento de backup
O gerenciamento da modificação é feito por meio de comandos de console que exigem o nível de acesso de operador (as opções dos comandos foram atualizadas na versão 3.7 para melhor compatibilidade com os blocos de comando, reduzindo a exigência de nível de permissões para o valor 2):
· /backup start — inicia o processo de backup em modo assíncrono. O comando leva em conta todas as configurações de agendamento, os intervalos mínimos e a atividade dos jogadores.
· /backup force — inicia de forma forçada o processo de cópia, ignorando as verificações de atividade dos jogadores e os limites de tempo frequency.min.
· /backup snapshot <name> — cria um backup completo (snapshot) com o nome indicado na subpasta snapshots. Esse arquivo não é considerado durante a limpeza automática de backups obsoletos e nunca é excluído automaticamente pelo sistema.
· /backup reload-config — executa a recarga dos parâmetros a partir do arquivo AdvancedBackups.properties sem a necessidade de reiniciar o servidor ou o cliente do jogo. Nas versões do mod anteriores à 2.2, para isso é utilizado o comando alternativo /advancedbackups reload.
· /backup check — analisa o estado atual do agendador e exibe informações sobre quanto tempo resta até o próximo backup agendado conforme o cronograma.
· /backup reset — reinicia o contador da cadeia atual de cópias incrementais ou diferenciais. O próximo backup agendado ou iniciado manualmente será criado de forma forçada como um arquivo completo ("full").
A redução do nível de permissão dos comandos para o valor 2 permite automatizar a criação de cópias por meio de Command Blocks e de plugins de agendamento de terceiros que invocam comandos de console em nome do servidor.
Utilitário de restauração por console (Command Line Restoration)
Como os backups diferenciais e incrementais são compostos por uma grande quantidade de arquivos de alterações inter-relacionados, sua restauração manual é um processo complexo. Para resolver essa tarefa, ao arquivo JAR da modificação foi integrado um utilitário de console especial.
Durante a primeira criação das cópias, a modificação gera automaticamente scripts auxiliares no diretório com os backups:
· restore-bootstrap.bat para o sistema operacional Windows.
· restore-bootstrap.sh para os sistemas operacionais Linux e macOS.
Esses scripts iniciam o assistente de restauração integrado ao arquivo JAR. Para iniciar a interface de restauração manualmente pelo terminal, é utilizado o comando:
|
(o nome do arquivo JAR deve corresponder exatamente à versão do mod instalado).
A interface de console do utilitário funciona em modo interativo:
1. Início da varredura da pasta de backups para analisar as cadeias e os snapshots disponíveis.
2. Exibição da lista de pontos de restauração disponíveis com indicação da data, da hora e do tipo de cópia (Full, Diff, Inc).
3. Verificação da integridade da cadeia do arquivo selecionado. Se for uma cópia incremental, o utilitário verifica automaticamente se estão presentes todas as partes intermediárias, do backup base completo até o ponto selecionado.
4. Solicitação da pasta de destino para a descompactação. O utilitário realizará a mesclagem sequencial e a substituição dos arquivos, reconstruindo o estado exato do mundo no momento da criação da cópia selecionada.
Antes de iniciar a restauração, é necessário parar completamente o servidor Minecraft. A tentativa de restaurar arquivos em um servidor em execução causará danos ao banco de dados do mundo e aos arquivos de região (.mca).
Particularidades de funcionamento nas diferentes plataformas e otimização
A modificação apresenta diferenças arquiteturais dependendo da plataforma de instalação escolhida:
· Notificações toast do lado do cliente: As notificações pop-up visuais sobre o início e a conclusão da criação do backup são implementadas por meio do sistema de toasts vanilla. Para que sejam exibidas no lado do cliente, é necessário ter instalado um mod compatível (Forge, NeoForge ou Fabric). Ao usar o mod em servidores Spigot ou Paper, os clientes sem o mod instalado não verão as notificações visuais, recebendo apenas mensagens de texto comuns no chat, se isso for permitido pelas configurações de registro.
· Versão 1.7.10: Devido às limitações técnicas das versões antigas do motor do jogo, a versão do mod para Minecraft 1.7.10 não suporta o sistema de notificações toast gráficas. Em vez disso, o progresso da cópia é exibido diretamente sobre a tela do jogo na forma de uma simples sobreposição de texto.
· Controle da alocação da memória RAM: A operação de compressão assíncrona exige a alocação de buffers de memória na JVM. Se, em um servidor com quantidade limitada de RAM (por exemplo, 2-4 GB), for definido um tamanho excessivamente grande para o parâmetro config.advancedbackups.buffer (mais de 10-20 MB) e um nível de compressão alto config.advancedbackups.zips.compression (nível 8-9), isso pode provocar o transbordamento do heap (JVM Heap) e o encerramento abrupto do servidor com o erro OutOfMemoryError. Para um funcionamento estável em servidores com recursos limitados, recomenda-se manter o tamanho padrão do buffer de 1 MB e um nível de compressão não superior a 4.
Conclusão
Advanced Backups é uma solução de ferramentas abrangente para garantir a preservação dos mundos de jogo no Minecraft Java Edition. Ao contrário de alternativas simples como o Simple Backups ou as ferramentas vanilla, este mod permite implementar uma estratégia de backup completa com o mínimo consumo de espaço em disco, graças ao uso de cadeias incrementais. A principal limitação da modificação é a ausência de provedores de nuvem integrados para o envio automático dos arquivos a armazenamentos externos (por exemplo, Google Drive ou servidores FTP diretamente a partir do mod), o que exige a configuração de scripts externos de sincronização da pasta ./backups. A modificação é recomendada para instalação em servidores públicos e privados de médio porte, onde é de importância crítica garantir a proteção contra a perda de dados sem interromper a jogabilidade.
Instalação
Uma instalação típica leva cerca de 5 minutos. O fluxo é o mesmo; só mudam o loader e o build correspondente.
- 1Stop your Minecraft server.
- 2Drop the plugin .jar into the server /plugins folder.
- 3Start the server once so the plugin generates its config files.
- 4Edit /plugins/<name>/config.yml as needed, then run /reload confirm or restart.








