A rendszeres biztonsági mentés a legfontosabb védelem adatvesztés, hibás frissítés, véletlen törlés vagy egy sikeres támadás ellen. KVM VPS szolgáltatásunkban naponta mentést készítünk a teljes virtuális gépről, Ön pedig bármikor pillanatképet is készíthet. Ezek a teljes szerver visszaállítására szolgálnak; egy-egy fájl vagy adatbázis gyors visszahozásához és a több helyen tárolt másolatokhoz érdemes saját mentést is beállítani.
A 3-2-1 szabály
Egy jó mentési stratégia legalább 3 példányban tárolja az adatokat, 2 különböző helyen vagy adathordozón, ebből 1 a szervertől fizikailag távol. A saját mentését tehát ne csak magán a VPS-en tartsa: egy lemezhiba, egy feltört szerver vagy egy véletlen rm -rf a helyben tárolt mentést is elviheti.
Mit érdemes menteni?
- Adatbázisok: ezeket a futó szerverről a fájlok egyszerű másolásával nem lehet megbízhatóan menteni, ezért exportálja őket.
- Weboldalak és alkalmazások fájljai: például a
/var/wwwmappa, a feltöltött képek és dokumentumok. - Konfiguráció: az
/etcmappa (webszerver, PHP, tűzfal, cron beállításai), így egy új szerveren gyorsan újraépítheti a környezetet.
Adatbázis-mentés
MySQL vagy MariaDB adatbázis mentése egy tömörített fájlba:
mysqldump --single-transaction --routines --all-databases | gzip > /root/backup/db-$(date +%F).sql.gz
PostgreSQL esetén a pg_dump (egy adatbázis) vagy a pg_dumpall (az összes) parancs a megfelelő.
Fájlmentés és távoli tárolás
- rsync: egyszerűen átmásolja a változott fájlokat egy másik szerverre; lásd az rsync és scp használatáról szóló cikket.
- restic vagy BorgBackup: titkosított, deduplikált mentést készítenek, több verziót őriznek meg, és S3-kompatibilis object storage-ba vagy egy másik szerverre is menthetnek.
- tar: egyszeri archívumhoz; lásd a tar.gz archívum készítése cikket.
Az általános Linux-mentési és visszaállítási módszereket külön cikk foglalja össze.
Automatizálás
A mentést ütemezze cron jobbal, hogy ne kelljen emlékeznie rá. Például minden éjjel 2 órakor futó mentőszkript:
0 2 * * * /root/bin/mentes.sh >> /var/log/mentes.log 2>&1
A crontab szintaxisáról külön cikk szól. Állítson be értesítést is a sikertelen mentésekről, és a régi mentéseket törölje automatikusan, hogy ne teljen meg a tárhely.
Tesztelje a visszaállítást
Egy mentés csak akkor ér valamit, ha vissza is lehet állítani belőle. Időnként állítson vissza egy adatbázist vagy egy mappát egy próbakörnyezetbe, és ellenőrizze, hogy minden adat megvan-e.
Ha a mentés és a szerver karbantartása helyett a saját projektjére koncentrálna, a menedzselt VPS szolgáltatásunkban ezt is mi végezzük.