Biztonsági mentés – blogdot

blogdot

bölcsészmérnök akcióban

Biztonsági mentés

A hétvégén levelet kaptam, hogy az egyik weboldal, amit üzemeltetek, nem teljesen működik, mert nem lehet letölteni néhány PDF fájlt. Ezeket a fájlokat automatikusan listázza egy rövid PHP script, tehát a fájlok ott vannak, de valami miatt mégsem voltak jók. Már az email előtt is láttam, hogy a videók nem töltöttek be és több kép is csak a feléig töltött be, de eleinte úgy gondoltam, hogy biztos valami linkelési hiba lesz. Meg amúgy is, legkorábban csak hétfőn tudtam ránézni.

Hát ránéztem. Három kivételével egyik PDF sem működött. A videók tuti nem voltak jók, és a képekkel is több gond volt. Legalább az összes Word dokumentum egyben meg volt.

Az egész akkor kezdődött, amikor múlt héten dolgoznom kellett a weboldalon, és emiatt letöltöttem Visual Studio Code-ban a mappáját. Miután végeztem, visszatöltöttem a szerverre ugyanígyés csináltam egy másolatot a szerveren, mielőtt felülírtam volna a fájlokat.

Szóval utánanéztem a másolatnak, amit csináltam. A videók megvoltak. A képek is. De a PDF mappája üres volt. Rekurzívan másoltam át és ráadásuk sudo-val, minden más átjött, az összes almappa és az összes fájl. A videókra ez jó, de a PDF-ekkel még mindig kezdeni kell valamit, kéne az a biztonsági másolat. Ugye van?

“Van,” mondja munkatársam, aki a szerver részét csinálja. Azt mondta, előkeresi a múlt heti állapotot, még mielőtt felülírtam az új verzióval, és bemásolja a home mappámba. Kész is, meg is nézem, de nem találom. Ráírok, kiderül, hogy a régi weblapnak van biztonsági mentése, azt másolta ki nekem. Ráadásul egy másik szerveren van ez az egész. Kérdezem, hogy az új weblapnak hol van a mentése.

“Nincs.”

Jó. Nem említettem meg neki, hogy erre is legyen, mert az új weblap egy új gépen volt. Viszont a PDF-ek biztos, hogy megvannak egy másik gépen, de nem úgy rendszerezve, mint ahogy a weblapon volt. Elő kell keresni őket, rendszerezni, hogy melyik kell. Ez időbe fog telleni.

Miközben összeszedjük ezeket a PDF-eket, nézem a gépemet és látok az asztalon egy mappát: frissites_elotti_weblap. A helyi XAMPP htdocs mappában volt egy update verzió és egy update_elotti. Ezek ugyanolyan hibásak voltak, mint amit sikerült felmásolnom. Nem adok nagy esélyt annak, hogy az a verzió, ami az asztalon van helyes lenne.

Pedig az. Működnek a PDF-ek.

Valamiért kimaradt az emlékezetemből, hogy csináltam még egy változatot, amit letöltöttem mielőtt felülírtam. Csoda, hogy nem töröltem ki miután végeztem.

Szuper, ezt a változatot bezippeljük, feltöltjük, átmásoljuk, és mindenki boldog lesz. Csak…

A PDF fájloknak ékezetes betűi vannak, mert a weboldalban a PHP script a fájlnevet egy-az-egyben átveszi (azaz PDF neve ékezettel.pdf és nem az legyen, hogy pdf_neve_ekezet_nelkül.pdf). Mindez azért kellett, mert a nevét, minusz a .pdf kiterjesztés, listázza ki egy oldalon.

Becsomagoláskor még jól néztek ki a fájlnevek, de kicsomagoláskor már valamilyen más kódlapot használt, és értelmezhetetlen lett a fájlnév. A HTML-ből sem működne a linkelés. Kézzel átírhatnám az összeset, de megint időbe tellene.

StackOverflow-on láttam, hogy be lehet állítani a kódlapot az unzip program -O paraméterével, de abba, amit én használtam (Debian 10) nem volt. Remek.

Megpróbáltam megint magát a mappát felmásolni Visual Studio Code-al, mint a legelején, ehhez viszont kell egy mappa, amihez van hozzáférésem. Mert ugye alapból a webszerver a www-data felhasználóval van rajta, a csoport és mindenki más csak olvashat. Viszont ez már rutin:

sudo mkdir test
sudo chown 777 test

777, mert kit érdekel a biztonság, úgyis kivágom ezt a mappát ha végeztem. Gyors felmásolás, a PDF-ek működnek böngészőből, a videók nem.

Ezzel már tudok kezdeni valamit. Most, hogy sikerült felszenvedni a régi változatot, már csak össze kéne cuppantani az új változattal. Ehhez, viszont az is kell, hogy pontosan melyek azok a fájlok, amik nem helyesek—nem mindegyik kép rossz.

A legtöbb fájlt át tudtam másolni mc-vel. A videók másolásánál jöttem rá, hogy letöltéskor (vagy feltöltéskor) valamiért túl hamar zárta le a folyamatot, és nem a teljes fájlt/csomagot másolta át. Mintha az archívum második fele hiányozna, a nagy fájlok “vége” hiányzott. Viszont mivel a szerveres másolat nem volt letöltve, a videók megmaradtak, így azokat vissza tudtam másolni.

Balra: helyes méretek. Felettébb fura, hogy mindegyik PDF ~196 kilobyte 🤔

A végén átnéztem a weboldalt, csináltam egy archívumot abból a két mentésből amiből végül összeollóztam a fájlokat, és eldöntöttem, hogy ha hazaérek, akkor lehúzom a maradék Sojut.

A tanulság, hogy (1) legyen biztonsági mentés és (2) ne bízzunk a letöltött fájlokban.

A “hétfő” és a “hol van a biztonsági mentés” nagyjából olyan érzelmet váltott ki belőlem, mint a “reggel” és a “metrópótló autóbusz közlekedik” együttese.