Az előfizetési értesítést eltüntető parancs: a leggyakoribb egysoros, a legcsendesebb kár
Telepítés után elsőként mindenki az előfizetési értesítéssel találkozik, és elsőként mindenki egy egysoros parancsot talál rá megoldásként. Ennek a parancsnak az elterjedt változata mérésre került: képes tönkretenni a teljes felületi programkönyvtárat.
AtlasPVE ·
A bejegyzés ezekre válaszol
- proxmox előfizetési értesítés eltüntetése
- proxmox no valid subscription üzenet
- proxmox telepítés utáni szkript
- mit kell csinálni proxmox telepítés után
- proxmox előfizetés figyelmeztetés kikapcsolása
A Proxmox telepítése és az első bejelentkezés után megjelenik az előfizetési értesítés. Bosszantó, mert minden bejelentkezéskor visszatér. Rákeresve előkerül egy egysoros parancs. Látszólag működik.
Ez az írás arról a parancsról szól, de az igazi témája nem a parancs: annak csendes ára, ha meg nem értett parancs kerül a gépre.
A mért hiba
A széles körben terjedő egysorosban valódi hiba van, és ez a hiba finom.
A klasszikus szövegszerkesztő eszközök alap reguláris kifejezéseiben a visszaperjellel írt függőleges vonal nem egyszerű karakter, hanem a vagylagosság operátora. A felület kódjában szereplő feltétel két függőleges vonalat tartalmaz, és amikor a parancs ezeket változatlanul visszaperjellel látja el, két vagylagosság operátor közé üres ág kerül.
Az üres ág a fájl minden pozíciójára illeszkedik. A "mindet cseréld" kapcsolóval együtt futtatva a kifejezés a teljes fájlon szétszórja a módosítást.
Ez nem feltételezés. A valódi fájl másolatán mérésre került: 26458 sorból 26458 változott meg, és a fájlban a false előfordulásainak száma 558 helyett 26458 lett. Az a rendszergazda, aki lefuttatta ezt a parancsot, a teljes Proxmox felületi programkönyvtárat tette volna tönkre.
Van egy második gond is: a célzott feltétel nem egyetlen soron áll, a Proxmox hat sorra bontja. Egy soronként dolgozó eszköz eleve nem is illeszthette volna rá helyesen.
Miért nem tűnt fel senkinek
Mert a kár néma. A parancs nem ad hibát, a képernyőn semmi nem pirosodik ki. A felület egy ideig működhet, a baj később jelentkezik, és abban a pillanatban senki nem köti össze a múlt héten bemásolt paranccsal.
Az általános tanulság ebből: a "mindenkinél működik" nem bizonyíték. Többnyire csak azt bizonyítja, hogy senki nem nézett utána.
Négy szabály minden ilyen jellegű módosításhoz
Minden művelet, amely rendszerfájlhoz nyúl, bárki is végzi, ezt a négyet kell hogy hordozza.
A biztonsági mentés egyszer készül, és soha nem íródik felül. Ha a mentés minden futáskor frissül, akkor a második futásnál már az elrontott állapot kerül mentésre.
A célzás szűk. Ha a célzott szöveg valóban megváltozott, a művelet nem hajtódik végre. Találgatás alapján a legközelebbi dolgot módosítani rosszabb, mint semmit sem módosítani.
Írás után a fájl visszaolvasásra kerül. Ha a várt eredmény nem jelent meg, a biztonsági mentés visszaáll. Attól, hogy az írás nem adott hibát, még nem biztos, hogy a helyes tartalom került a fájlba.
Jelölés marad hátra. Arra a kérdésre, hogy foltozva van-e ez a fájl, egy jel jelenlétének kell válaszolnia, nem a találgatásnak.
Amire senki nem gondol: mi van, ha már a mentés is hibás
Mind a négy betartásával is marad egy rés. Mi van, ha egy másik eszköz korábban elrontotta a fájlt, és a mentés ez után készült?
Akkor a visszavonás a hibás fájlt hozza vissza, és a látszat az, hogy minden rendbejött. Ezért a visszavonást is ellenőrizni kell: tényleg az eredeti tért vissza, vagy már maga a mentés is foltozott volt?
Ez példa arra a kérdésre, amelyet már működő gépen dolgozva folyamatosan fel kell tenni: nem az számít, mi történik tiszta telepítésen, hanem az, mi történik egy régi állapotot hordozó gépen.
Mit csinál az Atlas
Az Atlas ezt a munkát nem parancs bemásolásával, hanem a terméken belül végzi el, és mind a négy fenti szabályt alkalmazza.
A biztonsági mentés egyszer készül, és soha nem íródik felül. A célzás szűk: a minta a szóközökre rugalmas, minden másra pontos, így akkor is tart, ha a Proxmox megváltoztatja a formázást, de ha maga a feltétel változott meg, semmi nem történik. Írás után a fájl visszaolvasásra és ellenőrzésre kerül; ha a várt eredmény nem jelenik meg, a biztonsági mentés visszaáll. A behelyezett szöveg pedig jelölést hordoz, így a foltozottság kérdésére biztos válasz adható.
A visszavonás oldalán a fenti utolsó eset is kezelt: a mentés visszaállítása után ellenőrzés következik arról, hogy tényleg az eredeti tért-e vissza, és ha nem, azt a rendszer nyíltan kimondja.
Ez az írás valójában egyetlen mondatot szeretne elmondani: a feladat nem nehéz, de a helyes elvégzés és a működés látszata közti különbség a mérésen múlik.
Források
A Proxmox saját dokumentációja. Angol nyelvű, és ebben a kérdésben az övé az utolsó szó.