De opdracht die de abonnementsmelding weghaalt: de meest verspreide regel, de stilste schade
Het eerste wat iedereen na de installatie tegenkomt is de abonnementsmelding, en de eerste oplossing die iedereen vindt is een opdracht van één regel. De verspreide versie van die opdracht is gemeten: ze kan de hele schilbibliotheek slopen.
AtlasPVE ·
Dit artikel beantwoordt
- proxmox abonnementsmelding weghalen
- proxmox no valid subscription
- proxmox post install script
- wat te doen na installatie van proxmox
- proxmox nag verwijderen
Je hebt Proxmox geïnstalleerd, je aangemeld, en de abonnementsmelding verscheen. Ze stoort, want ze komt bij elke aanmelding terug. Je zoekt en vindt een opdracht van één regel. Ze lijkt te werken.
Dit artikel gaat over die opdracht, maar het echte onderwerp is niet de opdracht: de stille prijs van iets plakken dat je niet begrijpt.
De gemeten fout
In de wijd verspreide regel zit een echt gebrek, en het gebrek is subtiel.
In de eenvoudige reguliere uitdrukkingen van klassieke tekstgereedschappen is een verticale streep geschreven met een omgekeerde schuine streep geen gewoon teken maar de keuzeoperator. De voorwaarde in de schilcode bevat twee verticale strepen, en als de opdracht ze zo laat staan, ontstaat tussen twee keuzeoperatoren een lege keuze.
Een lege keuze past op elke plek in het bestand. Samen met "alles vervangen" uitgevoerd, strooit de uitdrukking de wijziging door het hele bestand.
Dit is geen gok. Het is gemeten op een kopie van het echte bestand: 26458 van de 26458 regels veranderden, en het aantal false in het bestand ging van 558 naar 26458. De beheerder die die opdracht uitvoerde, zou de hele schilbibliotheek van Proxmox gesloopt hebben.
Daar komt een tweede probleem bij: de beoogde voorwaarde staat niet op één regel, Proxmox verdeelt haar over zes. Een gereedschap dat regel voor regel werkt, had haar sowieso nooit goed kunnen raken.
Waarom niemand het merkte
Omdat de schade stil is. De opdracht geeft geen fout, er licht niets rood op. De schil kan nog een tijd blijven werken, het gedoe komt later, en op dat moment legt niemand het verband met "de opdracht die ik vorige week plakte".
De algemene les: "bij iedereen werkt het" is geen bewijs. Meestal is het alleen bewijs dat niemand gekeken heeft.
Vier regels voor elke wijziging van deze soort
Elke handeling die een systeembestand aanraakt, door wie dan ook uitgevoerd, moet deze vier dragen.
De reservekopie wordt één keer gemaakt en nooit overschreven. Haar bij elke uitvoering verversen betekent dat je bij de tweede de kapotte toestand bewaart.
Het mikpunt is smal. Is de beoogde tekst werkelijk veranderd, dan wordt de handeling niet uitgevoerd. Op de gok het dichtstbijzijnde veranderen is erger dan niets veranderen.
Na het schrijven wordt teruggelezen. Verschijnt het verwachte resultaat niet, dan wordt de reservekopie teruggezet. Dat een schrijfactie geen fout gaf, betekent niet dat ze het juiste schreef.
Er wordt een merkteken achtergelaten. De vraag "is dit bestand aangepast" moet beantwoord worden door de aanwezigheid van een teken, niet door gissen.
Het geval waar niemand aan denkt: als de reservekopie al kapot is
Zelfs met alle vier blijft er een gat. Wat als een ander gereedschap het bestand eerder sloopte en jij de reservekopie daarna maakte?
Dan brengt het terugdraaien het kapotte bestand terug en denk jij dat je het hersteld hebt. Daarom moet ook het terugdraaien gecontroleerd worden: kwam het origineel werkelijk terug, of was de reservekopie zelf al aangepast?
Dit is een voorbeeld van de vraag die je voortdurend moet stellen bij het werken met een reeds geïnstalleerde machine: niet wat er gebeurt op een schone installatie, maar wat er gebeurt op een machine die een oude toestand draagt.
Wat Atlas doet
Atlas doet dit werk binnen het product in plaats van via een geplakte opdracht, en past alle vier bovenstaande punten toe.
De reservekopie wordt één keer gemaakt en niet overschreven. Het mikpunt is smal: een patroon dat soepel is met witruimte maar getrouw in de rest, zodat het blijft werken als Proxmox de opmaak verandert, maar als de voorwaarde zelf veranderd is, gebeurt er niets. Na het schrijven wordt het bestand teruggelezen en gecontroleerd; verschijnt het verwachte resultaat niet, dan wordt de reservekopie teruggezet. En de geplaatste tekst draagt een merkteken, zodat de vraag "is het aangepast" met zekerheid beantwoord wordt.
Aan de terugdraaikant wordt ook het laatste geval behandeld: nadat de reservekopie is teruggezet, wordt gecontroleerd of het origineel werkelijk terugkwam, en zo niet, dan wordt dat duidelijk gezegd.
De ene zin die dit artikel werkelijk wil zeggen is deze: het werk is niet moeilijk, maar het verschil tussen het goed doen en lijken te werken loopt via meten.
Bronnen
De eigen documentatie van Proxmox. In het Engels, en die heeft over dit onderwerp het laatste woord.