Certamente havia sistemas UNIX mais antigos para os quais era mais seguro sincronizar mais de uma vez, mas nem todos em uma linha de comando como "sync; sync; sync". Em meados dos anos 80, isso se tornou destilado para:
Quando você desligar o sistema, sincronizará três vezes. Nem mais nem menos. Três será o número da sincronização e o número da sincronização será três. Quatro vezes não sincronizarás, nem sincronizarás duas vezes, exceto que procuras sincronizar uma terceira vez ...
Eu realmente não sei de onde vieram as três vezes, exceto talvez que tenha sido divertido. Mas a palavra na rua para fazê-lo duas vezes. Não como "sync; sync", mas como duas linhas separadas no shell.
Nos dias de, digamos, V7 UNIX, o reparo do sistema de arquivos não era muito divertido. Você precisava fazer isso manualmente, sabendo muito sobre como o sistema de arquivos funcionava e as idiossincrasias de programas como dcheck, ncheck e icheck. fsck, se você tivesse, nem sempre era algo em que você confiaria.
Isso está começando a soar como uma história de "andamos pela neve subindo os dois lados". Bem, não tínhamos comandos sofisticados, como reinicialização ou desligamento. Quando você queria reiniciar o sistema, sincronizou o sistema de arquivos com a sincronização e pressionou Ctrl-P no console para interrompê-lo.
Quando o comando sync foi encerrado, o kernel havia programado a sincronização, mas nem todos os buffers (incluindo o superbloco do sistema de arquivos mais importante) o fizeram necessariamente no disco. Por isso, era muito fácil executar a sincronização e interromper as coisas antes de estarem seguras.
Executar a sincronização novamente era uma tarefa fácil, demorava um tempo e tinha um certo apelo intuitivo, sem ter que entender tudo, ou lidar com instruções vagas como "conte até 10" ou algo assim.
Havia até uma seção de BUG na página de manual do V7 para update
também dizer:
Com a atualização em execução, se a CPU for interrompida assim que a sincronização for executada, um sistema de arquivos poderá ser danificado. Isso se deve parcialmente ao hardware DEC que grava zeros quando as solicitações NPR falham. Uma correção seria sincronizar (1) incrementar temporariamente o tempo do sistema em pelo menos 30 segundos para acionar a execução da atualização. Isso daria 30 segundos de graça para interromper a CPU.
(que, a propósito, foi a última coisa no volume 1 dos manuais da V7)
Com o tempo, as ferramentas do sistema de arquivos e os programas para desligar e reiniciar os sistemas ficaram melhores para evitar lidar com isso. Folclore, vodu e magia do sistema entram nela quando o sistema se comporta misteriosamente. A sincronização duas vezes tornava muito menos provável que você tivesse que usar as pinças para montar seu sistema de arquivos, para que isso se tornasse parte do ritual. Depois de fazer isso várias vezes, você faz isso sem pensar. Então alguém percebe e pergunta o porquê. E a resposta é algo como: "Sempre faça dessa maneira. É mais seguro".
Não vou afirmar que isso é autoritário e posso estar errado sobre alguns dos detalhes. Mas acho que é bem próximo da origem.
sync; sync; sync; sync
o título, e às vezes digito dessa maneira, também ouvi isso me ser explicado da mesma forma, ou seja, sincronizar, esperar, sincronizar novamente, esperar, etc.