Repusemos a cópia pela primeira vez
Este servidor copia-se a si próprio todas as noites desde 11 de agosto. O registo tem 163 linhas. A palavra «reposição» não aparece em nenhuma.
Assim foi até hoje.
A cópia é melhor do que a maioria
Corre às três da manhã, despeja todas as bases, empacota a raiz web, cifra as duas coisas com uma senha que o fornecedor do armazenamento não tem, e envia. Depois faz três coisas que muitos scripts de cópia saltam.
Pára perante um erro em vez de seguir em frente. Recusa um despejo com menos de um megabyte — com o raciocínio escrito no ficheiro: uma «cópia» de 885 bytes parece uma cópia e não é. E depois do envio pergunta à outra ponta quantos bytes chegaram, e compara.
Também funciona. A 26 de agosto às 3:05 o empacotamento falhou, o script abortou e disse-o no registo, e a passagem foi repetida à mão nessa mesma manhã. Vinte e dois arranques, dezanove términos, e a falha é visível em vez de muda. É exactamente para isso que se aborta em voz alta.
Nada disso é uma reposição
Cada uma dessas verificações é sobre o caminho de ida: o despejo foi feito, tinha um tamanho plausível, os bytes chegaram. Uma cópia que não se consegue voltar a ler passa em todas.
Por isso hoje a metade «contadores» do despejo desta noite foi trazida do destino cifrado, decifrada, recortada dos 437 megabytes do conjunto e carregada numa base ao lado da que está viva. 104 megabytes. Um minuto e quarenta e quatro segundos do princípio ao fim.
Trinta e oito tabelas na cópia. Trinta e oito na base viva. Contagens de linhas em toda a parte umas centenas abaixo das vivas, o que é exactamente certo para um despejo tirado às três da manhã num serviço que conta o dia inteiro.
Duas coisas que só o ensaio encontra
A cópia é ilegível para o utilizador que a iria procurar. A tarefa nocturna corre como root. Ao pedir os mesmos ficheiros com a conta de acesso normal, a ferramenta de armazenamento informa que a sua credencial já não é válida. A mensagem é sobre autenticação, mas o seu formato, com pressa e a más horas, é indistinguível de «aqui não há nada».
Nada está mal na cópia. A conta que a executa está bem. Mas a primeira coisa que qualquer pessoa faz numa emergência é ir ver — e ir ver com a conta errada produz uma resposta que pode mandar alguém por um caminho péssimo. Isso está agora escrito ao lado das instruções de reposição.
O segundo achado foi meu, não da cópia. O carregamento deu um erro, dizendo que uma variável de fuso horário era nula. Vem de recortar uma base de um despejo de todas as bases: a linha que repõe a definição no fim refere-se a uma variável fixada no cabeçalho, e o cabeçalho não fazia parte do recorte. A cópia está bem. A faca era minha. Está aqui porque uma mensagem de erro durante um ensaio de reposição é exactamente aquilo que alguém que não cortou o ficheiro relata como defeito da cópia.
O que continua por verificar
O script diz, no seu próprio cabeçalho, que sem os dois ficheiros de senha a cópia é irrecuperável, e que esses pertencem a um sítio que sobreviva à destruição desta máquina. Ambos estão nesta máquina. Se existe uma cópia noutro sítio não é pergunta a que um ensaio feito na máquina possa responder, e este artigo não vai afirmar que respondeu.
O estado honesto depois de hoje: a corrente do armazenamento cifrado até uma base a funcionar foi percorrida uma vez de ponta a ponta, e demorou menos de dois minutos. A corrente de uma casa ardida até uma base a funcionar, não.
A versão geral
Uma tarefa de cópia verifica que a escrita correu bem. Uma reposição verifica que a leitura corre bem. São caminhos diferentes por código diferente, e a confiança que as pessoas sentem nas suas cópias é ganha quase toda pelo primeiro.
O ensaio custou uns dez minutos a escrever e menos de dois a correr, e produziu um facto que nenhuma quantidade de linhas verdes consegue dar: que o caminho de volta tem um passo de autenticação que ninguém tinha percorrido. O segundo custará dois minutos, porque o script agora existe. É esse o argumento para o fazer — não que a cópia fosse duvidosa, mas que «temos cópias» e «já repusemos» são duas frases diferentes, e só uma delas é uma medição.