Az Al-Anon Magyarország részére olyan biztonságos és automatizált WordPress mentési megoldást kellett kialakítani amely minimális költséggel jár és hosszú távon is fenntartható. A feladat során figyelembe kellett venni a tárhely korlátait a bővítmények árazását és azt is, hogy a rendszer (viszonylag) egyszerűen kezelhető legyen.
A következőkben bemutatom lépésről lépésre hogyan építettem fel a teljes mentési struktúrát.
Első lépésként az All-In-One WP Migration bővítményt állítottam be amely képes komplett WordPress oldalak exportálására – fájlok és adatbázis export egyetlen *.wpress fájlba -. A plugin beépített ütemezési funkcióját használva – itt azért azt meg kell említeni hogy nekem már régóta megvan az Unlimited Extension kiegészítő ami kell az ütemezés beállításához – minden nap éjfélkor automatikusan készül egy új mentés amely felülírja az előző napi fájlt. A mentés közvetlenül az ügyfél cPanel alapú tárhelyére kerül eltárolásra.
A választás oka az volt hogy az All-In-One WP Migration megbízható, egyszerűen kezelhető és nem igényel különösebb karbantartást vagy bonyolult konfigurációt.
Annak érdekében, hogy a mentések ne csak a webtárhelyen legyenek elérhetők hanem egy külön szerveren is, lftp segítségével automatizáltam a fájlok átszinkronizálását egy Ubuntu szerverre. Erre azért volt szükség mert az All-In-One WP Migration ingyenes verziója nem támogat közvetlen Google Drive vagy egyéb felhő alapú tárolókhoz való csatlakozást külön fizetős bővítmény nélkül amely éves szinten 125 dollárba kerülne.
Az lftp parancssori eszközzel minden nap az új mentés automatikusan letöltésre kerül a szerverre így mindig rendelkezésre áll egy másodlagos példány is.
A backup szerveremen rclone segítségével csatoltam fel egy Google Drive mappát egy külön mount pont alá. Az rclone egy rendkívül sokoldalú eszköz amely lehetővé teszi hogy a Drive-ot úgy kezeljem mintha egy helyi fájlrendszer lenne.
Így az lftp-vel áthozott mentések azonnal továbbkerülnek a Google Drive-ra is amely egy harmadik mentési szintet biztosít – ezzel tovább növelve a biztonságot és a hozzáférhetőséget.
Mivel az új mentések minden nap generálódnak a régi mentések gyorsan felhalmozódnának a Google Drive-on. Ennek kezelésére egy egyszerű Google Apps Scriptet írtam amely minden nap átnézi az adott mappát és automatikusan törli a kukába helyezett fájlokat:
function createTimeDrivenTriggers() {
ScriptApp.newTrigger('emptyThrash')
.timeBased()
.everyHours(1)
.create();
}
function emptyThrash() {
Drive.Files.emptyTrash();
}
Ezzel biztosítom hogy a Drive tárhely mindig rendezett maradjon és ne fogyjon el a szabad hely a felesleges mentési állományok miatt.
Ezzel a megoldással sikerült egy költséghatékony rugalmas és biztonságos WordPress mentési rendszert kialakítani az Al-Anon számára. Az All-In-One WP Migration bővítmény segítségével egyszerűen készülnek a napi mentések, lftp-vel biztonságosan átkerülnek egy backup szerverre majd rclone segítségével a Google Drive-ra is felmásolódnak. A felesleges fájlokat pedig egy Google Apps Script távolítja el automatikusan.
Ez a rendszer nem csak költséghatékony hanem jól skálázható is így hosszú távon is biztosítani tudja az adatok védelmét.