Il y avait certainement des systèmes UNIX plus anciens pour lesquels il était plus sûr de synchroniser plus d'une fois, mais pas tous sur une seule ligne de commande comme "sync; sync; sync". Au milieu des années 80, cela s'est distillé pour:
Lorsque vous arrêtez le système, vous synchronisez trois fois. Ni plus ni moins. Trois doit être le numéro de la synchronisation et le nombre de la synchronisation doit être de trois. Tu ne synchroniseras pas quatre fois, tu ne synchroniseras pas deux fois, sauf que tu procèdes à synchroniser une troisième fois ...
Je ne sais pas vraiment d'où viennent les trois temps, sauf peut-être que c'était amusant. Mais le mot dans la rue pour le faire deux fois. Pas comme "sync; sync", mais comme deux lignes distinctes sur le shell.
À l'époque de, disons, V7 UNIX, la réparation du système de fichiers n'était pas très amusante. Vous deviez le faire à la main, en sachant beaucoup sur le fonctionnement du système de fichiers et les particularités de programmes comme dcheck, ncheck et icheck. fsck, si vous l'aviez, n'était pas toujours quelque chose en qui vous auriez confiance.
Cela commence à ressembler à une histoire «nous avons traversé la neige dans les deux sens». Eh bien, nous n'avions pas de commandes sophistiquées comme le redémarrage ou l'arrêt. Lorsque vous vouliez redémarrer le système, vous avez synchronisé le système de fichiers avec la synchronisation, puis vous avez appuyé sur Ctrl-P sur la console pour l'arrêter.
À la fin de la commande de synchronisation, le noyau avait planifié la synchronisation, mais tous les tampons (y compris le superbloc de système de fichiers très important) n'étaient pas nécessairement arrivés sur le disque. Il était donc assez facile d'exécuter la synchronisation, puis d'arrêter les choses avant qu'elles ne soient sûres.
Exécuter à nouveau la synchronisation était une chose facile à faire, prenait du temps et avait un certain attrait intuitif sans avoir à tout comprendre ou à traiter des instructions vagues comme "compter jusqu'à 10" ou quelque chose comme ça.
Il y avait même une section BUG sur la page de manuel V7 pour update
aussi dit:
Avec la mise à jour en cours d'exécution, si le CPU est arrêté juste au moment où la synchronisation est exécutée, un système de fichiers peut être endommagé. Cela est partiellement dû au matériel DEC qui écrit des zéros lorsque les demandes NPR échouent. Un correctif consisterait à ce que sync (1) incrémente temporairement l'heure système d'au moins 30 secondes pour déclencher l'exécution de la mise à jour. Cela donnerait 30 secondes pour arrêter le CPU.
(qui, soit dit en passant, était la toute dernière chose dans le volume 1 des manuels V7)
Au fil du temps, les outils du système de fichiers et les programmes d'arrêt et de redémarrage des systèmes se sont améliorés pour éviter de traiter cela. Le folklore, le vaudou et la magie du système y entrent lorsque le système se comporte mystérieusement. La synchronisation à deux reprises a rendu beaucoup moins probable que vous deviez sortir la pince à épiler pour remonter votre système de fichiers, donc cela est devenu une partie du rituel. Une fois que vous l'avez fait plusieurs fois, vous le faites sans réfléchir. Ensuite, quelqu'un remarque et demande pourquoi. Et la réponse est quelque chose comme, "Toujours le faire de cette façon. C'est plus sûr."
Je ne prétendrai pas que cela fait autorité, et je peux me tromper sur certains détails. Mais je pense que c'est assez proche de l'origine.
sync; sync; sync; sync
le titre, et je le tape parfois de cette façon, je l'ai également entendu m'expliquer de la même manière, c'est-à-dire, synchroniser, attendre, synchroniser à nouveau, attendre, etc.