Kommandoen, der fjerner abonnementsbeskeden: den mest udbredte enlinjer, den mest tavse skade
Det første, alle møder efter installationen, er abonnementsbeskeden, og den første løsning, alle finder, er en kommando på én linje. Den udbredte udgave af den kommando blev målt: den kan ødelægge hele fladens bibliotek.
AtlasPVE ·
Denne artikel besvarer
- proxmox fjern abonnementsbesked
- proxmox no valid subscription
- proxmox post install script
- hvad gør man efter installation af proxmox
- proxmox fjern nag
Du installerede Proxmox, loggede ind, og abonnementsbeskeden dukkede op. Den irriterer, for den kommer igen ved hvert log ind. Du søger og finder en kommando på én linje. Den ser ud til at virke.
Denne artikel handler om den kommando, men dens egentlige emne er ikke kommandoen: den tavse pris ved at indsætte noget, man ikke forstår.
Den målte fejl
Inde i den vidt udbredte enlinjer findes en virkelig mangel, og manglen er fin.
I de simple regulære udtryk i klassiske tekstværktøjer er en lodret streg skrevet med omvendt skråstreg ikke et almindeligt tegn, men alternativoperatoren. Betingelsen i fladens kode indeholder to lodrette streger, og når kommandoen beskytter dem, som de står, opstår der et tomt alternativ mellem to alternativoperatorer.
Et tomt alternativ passer på hver eneste position i filen. Kørt sammen med "erstat alle" strør udtrykket ændringen ud over hele filen.
Dette er ikke et gæt. Det blev målt på en kopi af den rigtige fil: 26458 ud af 26458 linjer blev ændret, og antallet af false i filen gik fra 558 til 26458. Den administrator, der kørte den kommando, ville have ødelagt hele Proxmox' fladebibliotek.
Oveni kommer et andet problem: den betingelse, der sigtes mod, står ikke på én linje, Proxmox fordeler den over seks. Et værktøj, der arbejder linje for linje, kunne under alle omstændigheder aldrig have ramt den rigtigt.
Hvorfor ingen bemærkede det
Fordi skaden er tavs. Kommandoen giver ingen fejl, intet lyser rødt. Fladen kan blive ved med at virke et stykke tid, bøvlet dukker op senere, og i det øjeblik forbinder ingen det med "den kommando, jeg indsatte i sidste uge".
Den almene lære: "det virker hos alle" er ikke et bevis. Som oftest er det kun et bevis på, at ingen har set efter.
Fire regler for enhver ændring af denne slags
Enhver handling, der rører en systemfil, uanset hvem der udfører den, skal bære disse fire.
Sikkerhedskopien tages én gang og overskrives aldrig. At forny den ved hver kørsel betyder, at man ved den anden gemmer den ødelagte tilstand.
Sigtet er snævert. Har den tekst, der sigtes mod, virkelig ændret sig, bliver handlingen ikke udført. At ændre det nærmeste på slump er værre end at ændre intet.
Efter skrivningen læses filen tilbage. Udebliver det ventede resultat, gendannes sikkerhedskopien. At en skrivning ikke gav fejl, betyder ikke, at den skrev det rigtige.
Der efterlades et mærke. Spørgsmålet "er denne fil ændret" skal besvares af, at et mærke findes, ikke af gætteri.
Tilfældet, ingen tænker på: hvis sikkerhedskopien allerede er ødelagt
Selv med alle fire står én åbning tilbage. Hvad hvis et andet værktøj ødelagde filen tidligere, og du tog sikkerhedskopien bagefter?
Så bringer tilbagerulningen den ødelagte fil tilbage, og du tror, du har rettet det. Derfor skal også tilbagerulningen kontrolleres: kom originalen virkelig tilbage, eller var sikkerhedskopien selv allerede ændret?
Dette er et eksempel på det spørgsmål, man hele tiden må stille, når man arbejder med en allerede installeret maskine: ikke hvad der sker på en ren installation, men hvad der sker på en maskine, der bærer en gammel tilstand.
Hvad Atlas gør
Atlas udfører dette arbejde inde i produktet i stedet for gennem en indsat kommando og anvender alle fire punkter ovenfor.
Sikkerhedskopien tages én gang og overskrives ikke. Sigtet er snævert: et mønster, der er eftergivende med mellemrum, men tro mod resten, så det bliver ved med at gribe, hvis Proxmox ændrer formateringen, men har betingelsen selv ændret sig, gøres der intet. Efter skrivningen læses filen tilbage og kontrolleres; udebliver det ventede resultat, gendannes sikkerhedskopien. Og den indsatte tekst bærer et mærke, så spørgsmålet "er den ændret" besvares med vished.
På tilbagerulningssiden håndteres også det sidste tilfælde: efter at sikkerhedskopien er gendannet, kontrolleres det, om originalen virkelig kom tilbage, og hvis den ikke gjorde, siges det lige ud.
Den ene sætning, denne artikel virkelig vil sige, er denne: arbejdet er ikke svært, men forskellen mellem at gøre det rigtigt og at se ud til at virke går gennem at måle.
Kilder
Proxmox’ egen dokumentation. På engelsk, og den har det sidste ord i dette spørgsmål.