- Notifications
You must be signed in to change notification settings - Fork 1
A script nem saját ötlet alapján készült, forrás: Rob Flickengen: Linux bevetés közben (Linux Server Hacks).
A script-et a szerver gépen kell, pl. a cron-ból futtatni. Sorba veszi a mentendő kliens gépeket, és egy rsync hívással készít másolatot a fájlrendszerükről. Ahhoz, hogy a szerver hozzáférjen a kliens fájlrendszeréhez, a szükséges root jogokkal szüksége van a szervernek egy SSL kulcsra.
A script a mentett adatokat nem tömöríti, a forrással azonos formában ment. A helytakarékosság a régebbi verziók mentési stílusánál jelentkezik, mivel a változatlan fájlokról csak egy hard link van a régebbi verziók esetén. A scriptek csak a mentést támogatják, a visszaállítást ez a csomag nem tartalmazza.
Első lépésként másoljuk be a három scriptet pl. a /usr/local/sbin könyvtárba, tegyük futtathatóvá, és persze legyen a PATH-on a /usr/local/sbin könyvtár.
Néhány, a működéshez szükséges adat tárolására a /var/lib/backup könyvtár szolgál, ezt is hozzuk létre.
A mentések a /srv/backup/ könyvtárba történnek, hozzuk létre a /srv/backup könyvtárat. (A scriptek elején a mentés helyét a "DIR=/srv/backup" sor átírásával megváltoztathatjuk.)
Az aktuális mentés, egy a mentett rendszerrel azonos nevű könyvtárba történik, a régebbi változatok pedig a x, A_x_, és B_x_ kiterjesztést kapják, ahol x egy 1 és 8 közötti szám.
Nem kötelező, de praktikus a mentett rendszerek címét és nevét felvenni a /etc/hosts fájlba. Mivel biztosítanunk kell, hogy a mentő szerver hozzáférjen a mentendő rendszerhez, ezért a szerveren létre kell hoznunk egy SSH ügyfélkulcsot. Adjuk ki root felhasználóként a következő parancsot:
ssh-keygen -t rsa
A létrejött két fájlból az egyiket: .ssh/id_rsa.pub fájlt át kell másolnunk a mentendő rendszer /root/.ssh könyvtárába authorized_keys néven, illetve ha ez a fájl már létezik, akkor hozzá kell fűzni (cat).
Ezután próbáljuk ki, hogy jelszó nélkül az ssh-val be tudunk lépni a mentendő rendszerre root-ként, jelszó megadása nélkül. Ha nem módisítsuk úgy az sshd beállításait, hogy ezt megtehessük.
Létre kell hoznunk egy szöveges fájlt a /var/lib/backup könyvtárban exclude-host névvel, ahol a host a mentett rendszer neve. Ebben a fájlban kell felsorolni azon könyvtárak nevét, melyeket nem szeretnénk menteni, pl.:
/proc
/sys
/tmp
/var/tmp
/media
/mnt
/var/lock
/var/run
/var/spool/squid
/var/log/*.[123456789]*
/var/log/*/*.[123456789]*
/.*
Végül futtatnunk kell a backup_host_init.sh scriptet paraméterként megadva a mentendő rendszer nevét. Ezzel létrehozzuk az első mentésünket. A mentő script (backup.sh) feltételezi, hogy egy mentésünk már van a rendszerről (pontosabban, azokat a hosztokat menti, amiről talál legalább egy régebbi mentést). Mivel ez a script a teljes mentett adatmennyiséget átutaztatja a hálózaton, jóval nagyobb erőforrás igényű, mint a már csak a változásokat kezelő script, ezért számítsunk rá, hogy nagyobb rendszereknél ez sok időt fog igénybe venni.
A növekményes mentéseket a backup.sh és a backup backup_host.sh script páros végzi. A backup.sh scriptet a cron segítségével hívhatjuk (root felhasználóként) a mentési stratégiánknak megfelelő időpontokban. A backup.sh sorra veszi azokat a rendszereket, amikről talál egy már mentett példányt, a legutolsó és a régebbi mentett példányokat a később vázolt módon görgeti, majd az aktuális példányt az rsync hívásával szinkronizálja.