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.

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.