Backup de conta cPanel que só copia arquivos não serve no dia do desastre: sem a configuração da conta, o admin recria tudo à mão. O backup da conta cPanel inteira (configuração para recriar a conta, arquivos, e-mails e bancos) roda bem num servidor de produção, uma conta por vez e várias ao mesmo tempo? E quanto custa a cópia seguinte?
Por que isso importa para quem administra o servidor
- A conta inteira (configuração, arquivos, e-mails e bancos) em 33 s para 3 contas juntas, num servidor em produção: o backup não ocupa a noite.
- O incremental das mesmas 3 contas levou 7 s: a cópia de cada noite custa quase nada ao servidor e ao storage.
- O teste pegou bancos com @ no nome e os marcou como falha, em vez de dizer que deu certo. Falha calada só aparece no dia em que alguém precisa restaurar.
Ver os dados em tabela
| Rodada | Tempo | Memória do backup |
|---|---|---|
| 1º backup, 3 contas uma por vez (2,9 GB) | 47 s | 741 MB |
| 1º backup, 3 contas ao mesmo tempo (3,4 GB) | 33 s | 935 MB |
| Incremental, uma por vez | 18 s | 240 MB |
| Incremental, ao mesmo tempo | 7 s | 249 MB |
Método
Como o Salvo copia uma conta cPanel (o mesmo princípio do JetBackup): a configuração pelo pkgacct do próprio cPanel, sem os dados (domínios, DNS, contas de e-mail, usuários e permissões de banco, SSL, cron e FTP); os arquivos da conta, incluindo os e-mails, de forma incremental; e um dump por banco, com as tabelas MyISAM travadas só enquanto são copiadas. Tudo no repositório da própria conta, comprimido.
Servidor cPanel em produção (AlmaLinux 8, 8 núcleos, 11 GB de memória, sem swap), em horário comercial, com a carga normal dos sites (entre 5 e 6). Seis contas WordPress de cerca de 1 GB cada (de 13 mil a 38 mil arquivos).
Prioridade baixa, teto de 2 GB de memória para o backup e pausa automática se a carga passasse de 8. O incremental rodou minutos depois do primeiro backup.
O que o teste pegou: dois bancos tinham @ no nome. A primeira versão recusava esse caractere e marcou os bancos como falha, sem fingir que estava tudo bem. Corrigimos (o nome é válido no MySQL), rodamos de novo e os bancos passaram.
O que decidimos
Em produção, o padrão começa com 2 contas ao mesmo tempo.