Kommandoen som fjerner abonnementsvarselet: den mest utbredte enlinjeren, den stilleste skaden

Det første alle møter etter installasjonen er abonnementsvarselet, og den første løsningen alle finner er en kommando på én linje. Den utbredte utgaven av den kommandoen ble målt: den kan ødelegge hele grensesnittbiblioteket.

AtlasPVE ·

Denne artikkelen svarer på

  • proxmox fjerne abonnementsvarsel
  • proxmox no valid subscription
  • proxmox post install script
  • hva gjøre etter installasjon av proxmox
  • proxmox fjerne nag

Du installerte Proxmox, logget inn, og abonnementsvarselet dukket opp. Det irriterer, for det kommer igjen ved hver innlogging. Du søker og finner en kommando på én linje. Den ser ut til å virke.

Denne artikkelen handler om den kommandoen, men det egentlige emnet er ikke kommandoen: den stille kostnaden ved å lime inn noe du ikke forstår.

Den målte feilen

Inne i den vidt spredte enlinjeren finnes en virkelig mangel, og mangelen er fin.

I de enkle regulære uttrykkene til klassiske tekstverktøy er en loddrett strek skrevet med omvendt skråstrek ikke et vanlig tegn, men alternativoperatoren. Vilkåret i grensesnittkoden inneholder to loddrette streker, og når kommandoen beskytter dem slik de er, oppstår det et tomt alternativ mellom to alternativoperatorer.

Et tomt alternativ passer på hver eneste posisjon i filen. Kjørt sammen med "erstatt alle" strør uttrykket endringen ut over hele filen.

Dette er ingen gjetning. Det ble målt på en kopi av den ekte filen: 26458 av 26458 linjer ble endret, og antallet false i filen gikk fra 558 til 26458. Den administratoren som kjørte den kommandoen, ville ha ødelagt hele grensesnittbiblioteket til Proxmox.

I tillegg kommer et annet problem: vilkåret som siktes mot, står ikke på én linje, Proxmox fordeler det over seks. Et verktøy som arbeider linje for linje, kunne uansett aldri ha truffet det riktig.

Hvorfor ingen merket det

Fordi skaden er stille. Kommandoen gir ingen feil, ingenting lyser rødt. Grensesnittet kan fortsette å virke en stund, trøbbelet dukker opp senere, og i det øyeblikket kobler ingen det til "kommandoen jeg limte inn forrige uke".

Den allmenne lærdommen: "det virker hos alle" er ikke et bevis. Som oftest er det bare et bevis på at ingen har sett etter.

Fire regler for enhver endring av dette slaget

Enhver handling som berører en systemfil, uansett hvem som utfører den, må bære disse fire.

Sikkerhetskopien tas én gang og overskrives aldri. Å friske den opp ved hver kjøring betyr at man ved den andre lagrer den ødelagte tilstanden.

Siktet er smalt. Har teksten det siktes mot virkelig endret seg, blir handlingen ikke utført. Å endre det nærmeste på slump er verre enn å ikke endre noe.

Etter skrivingen leses filen tilbake. Uteblir det ventede resultatet, gjenopprettes sikkerhetskopien. At en skriving ikke ga feil, betyr ikke at den skrev det riktige.

Det etterlates et merke. Spørsmålet "er denne filen endret" må besvares av at et merke finnes, ikke av gjetning.

Tilfellet ingen tenker på: hvis sikkerhetskopien alt er ødelagt

Selv med alle fire står én åpning igjen. Hva om et annet verktøy ødela filen tidligere, og du tok sikkerhetskopien etterpå?

Da bringer tilbakestillingen den ødelagte filen tilbake, og du tror du har rettet det. Derfor må også tilbakestillingen kontrolleres: kom originalen virkelig tilbake, eller var sikkerhetskopien selv alt endret?

Dette er et eksempel på spørsmålet man stadig må stille når man arbeider med en allerede installert maskin: ikke hva som skjer på en ren installasjon, men hva som skjer på en maskin som bærer en gammel tilstand.

Hva Atlas gjør

Atlas gjør dette arbeidet inne i produktet i stedet for gjennom en innlimt kommando, og bruker alle fire punktene over.

Sikkerhetskopien tas én gang og overskrives ikke. Siktet er smalt: et mønster som er ettergivende med mellomrom, men tro mot resten, så det fortsetter å gripe om Proxmox endrer formateringen, men har vilkåret selv endret seg, gjøres ingenting. Etter skrivingen leses filen tilbake og kontrolleres; uteblir det ventede resultatet, gjenopprettes sikkerhetskopien. Og teksten som settes inn, bærer et merke, slik at spørsmålet "er den endret" besvares med visshet.

På tilbakestillingssiden håndteres også det siste tilfellet: etter at sikkerhetskopien er gjenopprettet, kontrolleres det om originalen virkelig kom tilbake, og hvis den ikke gjorde det, sies det rett ut.

Den ene setningen denne artikkelen virkelig vil si, er denne: arbeidet er ikke vanskelig, men forskjellen mellom å gjøre det riktig og å se ut til å virke går gjennom å måle.

Kilder

Proxmox sin egen dokumentasjon. På engelsk, og den har siste ord i denne saken.

Relaterte artikler

Hvordan ser dette ut inne i Atlas?

Gå til produktsiden