Weboldal keresés

Rsnapshot (Rsync alapú) – Helyi/távoli fájlrendszer biztonsági mentési segédprogramja Linuxhoz


Az rsnapshot egy nyílt forráskódú helyi/távoli fájlrendszer biztonsági mentési segédprogramja Perl nyelven íródott, amely előnyt jelent a Rsync és SSH program a Linux/Unix fájlrendszerek ütemezett növekményes biztonsági mentéseinek létrehozásához, miközben csak a fájl helyet foglalja el. egyetlen teljes biztonsági mentés plusz különbségek, és ezeket a biztonsági másolatokat a helyi meghajtón egy másik merevlemezre, egy külső USB-meghajtóra , egy NFS-re csatlakoztatott meghajtón vagy egyszerűen a hálózaton keresztül egy másik gépre SSH-on keresztül.

Ez a cikk bemutatja, hogyan kell telepíteni, beállítani és használni az rsnapshot alkalmazást a növekményes óránkénti, napi, heti és havi helyi biztonsági mentések, valamint távoli biztonsági mentések. A cikkben szereplő összes lépés végrehajtásához root felhasználónak kell lennie.

1. lépés: Az Rsnapshot Backup telepítése Linux alatt

Az rsnapshot telepítése Yum és APT használatával némileg eltérhet, ha Red Hat és Debianalapú disztribúciók.

RHEL/CentOS rendszeren

Először telepítenie kell és engedélyeznie kell a harmadik féltől származó EPEL nevű adattárat. Kérjük, kövesse az alábbi linket, hogy telepítse és engedélyezze RHEL/CentOS rendszereit. A Fedora felhasználóknak nincs szükségük különleges adattár-konfigurációkra.

  1. Az EPEL Repository telepítése és engedélyezése az RHEL/CentOS 6/5/4 verziójában

Miután elvégezte a beállításokat, telepítse az rsnapshot programot a parancssorból az ábrán látható módon.

yum install rsnapshot
Debian/Ubuntu/Linux Mint rendszeren

Alapértelmezés szerint az rsnapshot benne van az Ubuntu tárolóiban, így telepítheti az apt-get paranccsal az ábrán látható módon.

apt-get install rsnapshot

2. lépés: Az SSH jelszó nélküli bejelentkezés beállítása

A távoli Linux-kiszolgálók biztonsági mentéséhez az rsnapshot biztonsági mentési szervere jelszó nélkül csatlakozhat SSH-n. Ennek eléréséhez létre kell hoznia egy SSH nyilvános és privát kulcsot az rsnapshot szerveren történő hitelesítéshez. Kérjük, kövesse az alábbi linket nyilvános és privát kulcsok létrehozásához az rsnapshot biztonsági mentési szerverén.

  1. Hozzon létre SSH jelszó nélküli bejelentkezést az SSH Keygen használatával

3. lépés: Az Rsnapshot konfigurálása

Most szerkesztenie kell, és hozzá kell adnia néhány paramétert az rsnapshot konfigurációs fájlhoz. Nyissa meg az rsnapshot.conf fájlt a vi vagy a nano szerkesztővel.

vi /etc/rsnapshot.conf

Ezután hozzon létre egy biztonsági mentési könyvtárat, ahol az összes biztonsági másolatot tárolni kívánja. Az én esetemben a biztonsági mentési könyvtár helye „/data/backup/”. Keresse meg és szerkessze a következő paramétert a biztonsági mentés helyének beállításához.

snapshot_root			 /data/backup/

Szintén törölje a megjegyzéseket a „cmd_ssh” sorból, hogy lehetővé tegye a távoli biztonsági mentések készítését SSH felett. A sor megjegyzésének törléséhez távolítsa el a „#” jelet a következő sor elől, hogy az rsnapshot biztonságosan továbbítsa adatait egy tartalék szerverre.

cmd_ssh			/usr/bin/ssh

Ezután el kell döntenie, hogy hány régi biztonsági másolatot szeretne megőrizni, mivel az rsnapshotnak fogalma sem volt, milyen gyakran szeretne pillanatfelvételeket készíteni. Meg kell adnia, hogy mennyi adatot kell menteni, meg kell adnia a megtartandó intervallumokat, és mindegyikből hányat.

Nos, az alapértelmezett beállítások elég jók, de szeretném, ha engedélyezné a „havi” intervallumot, hogy hosszabb távú biztonsági mentéseket is készíthessen. Kérjük, szerkessze ezt a részt úgy, hogy az az alábbi beállításokhoz hasonlítson.

#########################################
          BACKUP INTERVALS            #
Must be unique and in ascending order #
i.e. hourly, daily, weekly, etc.      #
#########################################

interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3

Még egy dolog, amit szerkeszteni kell, az az „ssh_args” változó. Ha az alapértelmezett SSH-portot (22) másra módosította, meg kell adnia a távoli biztonsági mentési szerver portszámát.

ssh_args		-p 7851

Végül adja hozzá azokat a helyi és távoli biztonsági mentési könyvtárakat, amelyekről biztonsági másolatot szeretne készíteni.

Helyi könyvtárak biztonsági mentése

Ha úgy döntött, hogy helyileg ugyanarra a gépre menti a könyvtárakat, a biztonsági mentés bejegyzése így fog kinézni. Például biztonsági másolatot készítek a /tecmint és /etc könyvtáraimról.

backup		/tecmint/		localhost/
backup		/etc/			localhost/
Távoli könyvtárak biztonsági mentése

Ha biztonsági másolatot szeretne készíteni egy távoli kiszolgáló könyvtárairól, akkor meg kell adnia az rsnapshotnak, hogy hol található a kiszolgáló, és mely könyvtárakat kívánja menteni. Itt készítek biztonsági másolatot távoli szerverem „/home” könyvtáráról az rsnapshot szerver „/data/backup” könyvtárában.

backup		 [email :/home/ 		/data/backup/

Olvassa el még:

  1. Könyvtárak biztonsági mentése/szinkronizálása az Rsync (Remote Sync) eszközzel
  2. Fájlok/mappák átvitele az SCP Command használatával
Fájlok és könyvtárak kizárása

Itt mindent kizárok, és csak akkor határozom meg konkrétan, hogy miről szeretnék biztonsági másolatot készíteni. Ehhez létre kell hoznia egy kizárási fájlt.

vi /data/backup/tecmint.exclude

Először szerezze be azon könyvtárak listáját, amelyekről biztonsági másolatot szeretne készíteni, és adja hozzá ( – * ), hogy kizárjon minden mást. Ezzel csak arról lesz biztonsági másolat, amit a fájlban felsorolt. A kizárt fájlom az alábbihoz hasonlóan néz ki.

+ /boot
+ /data
+ /tecmint
+ /etc
+ /home
+ /opt
+ /root
+ /usr
- /usr/*
- /var/cache
+ /var
- /*

A fájl kizárása opció használata nagyon bonyolult lehet az rsync rekurzió használata miatt. Tehát előfordulhat, hogy a fenti példám nem az, amit keres. Ezután adja hozzá a kizárt fájlt az rsnapshot.conf fájlhoz.

exclude_file    /data/backup/tecmint.exclude

Végül majdnem kész a kezdeti konfiguráció. Mentse el az „/etc/rsnapshot.conf” konfigurációs fájlt, mielőtt továbblép. Számos lehetőség van a magyarázatra, de itt van a minta konfigurációs fájlom.

config_version  1.2
snapshot_root   /data/backup/
cmd_cp  /bin/cp
cmd_rm  /bin/rm
cmd_rsync       /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger      /usr/bin/logger
cmd_du  /usr/bin/du
interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3
ssh_args	-p 25000
verbose 	2
loglevel        4
logfile /var/log/rsnapshot/
exclude_file    /data/backup/tecmint.exclude
rsync_long_args --delete        --numeric-ids   --delete-excluded
lockfile        /var/run/rsnapshot.pid
backup		/tecmint/		localhost/
backup		/etc/			localhost/
backup		[email :/home/ 		/data/backup/

A fenti lehetőségek és érvek magyarázata a következő:

  1. config_version 1.2=A konfigurációs fájl verziója
  2. snapshot_root=Cél mentése a pillanatképek tárolására
  3. cmd_cp=A másolási parancs elérési útja
  4. cmd_rm=A parancs eltávolításának elérési útja
  5. cmd_rsync=Az rsync elérési útja
  6. cmd_ssh=SSH elérési útja
  7. cmd_logger=A shell parancsfelület elérési útja a sysloghoz
  8. cmd_du=Lemezhasználati parancs elérési útja
  9. óránkénti intervallum=Hány óránkénti biztonsági másolatot kell készíteni.
  10. napi intervallum=Hány napi biztonsági másolatot kell készíteni.
  11. heti intervallum=Hány heti biztonsági másolatot kell készíteni.
  12. havi intervallum=Hány havi biztonsági másolatot kell készíteni.
  13. ssh_args=Opcionális SSH-argumentumok, például egy másik port (-p )
  14. verbose=Magától értetődő
  15. loglevel=Magától értetődő
  16. logfile=A naplófájl elérési útja
  17. exclude_file=A kizárási fájl elérési útja (részletesebben elmagyarázzuk)
  18. rsync_long_args=Az rsync-nek átadandó hosszú argumentumok
  19. lockfile=Magától értetődő
  20. Biztonsági mentés=A biztonsági másolat teljes elérési útja, majd az elhelyezés relatív útvonala.

4. lépés: Ellenőrizze az Rsnapshot konfigurációját

Ha végzett az összes konfigurációval, ideje ellenőrizni, hogy minden a várt módon működik-e. Futtassa a következő parancsot annak ellenőrzésére, hogy a konfiguráció megfelelő szintaxissal rendelkezik.

rsnapshot configtest

Syntax OK

Ha minden helyesen van beállítva, egy „Szintaxis OK” üzenet jelenik meg. Ha bármilyen hibaüzenetet kap, az azt jelenti, hogy az rsnapshot futtatása előtt ki kell javítania ezeket a hibákat.

Ezután végezzen próbaüzemet az egyik pillanatfelvételen, hogy megbizonyosodjon arról, hogy megfelelő eredményeket generálunk. Az „hourly” paramétert használjuk a -t (teszt) argumentum használatával történő próbafutáshoz. Ez az alábbi parancs egy bőbeszédű listát jelenít meg a tennivalókról anélkül, hogy ténylegesen megtenné.

rsnapshot -t hourly
Minta kimenet
echo 2028 > /var/run/rsnapshot.pid 
mkdir -m 0700 -p /data/backup/ 
mkdir -m 0755 -p /data/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home \
    /backup/hourly.0/localhost/ 
mkdir -m 0755 -p /backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc \
    /backup/hourly.0/localhost/ 
mkdir -m 0755 -p /data/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    /usr/local /data/backup/hourly.0/localhost/ 
touch /data/backup/hourly.0/

Megjegyzés: A fenti parancs megmondja az rsnapshotnak, hogy hozzon létre egy „óránkénti” biztonsági mentést. Valójában kiírja azokat a parancsokat, amelyeket akkor hajt végre, amikor valóban végrehajtjuk.

5. lépés: Az Rsnapshot manuális futtatása

Az eredmények ellenőrzése után eltávolíthatja a „-t ” opciót a parancs tényleges futtatásához.

rsnapshot hourly

A fenti parancs futtatja a biztonsági mentési szkriptet az összes konfigurációval, amelyet hozzáadtunk az rsnapshot.conf fájlhoz, és létrehoz egy „backup” könyvtárat, majd létrehozza alatta a könyvtárstruktúrát. amely rendszerezi a fájljainkat. A fenti parancs futtatása után ellenőrizheti az eredményeket úgy, hogy a biztonsági mentési könyvtárba lép, és az ls -l paranccsal listázza ki a könyvtárstruktúrát az ábrán látható módon.

cd /data/backup
ls -l

total 4
drwxr-xr-x 3 root root 4096 Oct 28 09:11 hourly.0

6. lépés: A folyamat automatizálása

A folyamat automatizálásához ütemeznie kell, hogy az rsnapshot bizonyos időközönként lefusson a Cron programból. Alapértelmezés szerint az rsnapshot tartalmazza a cron fájlt a „/etc/cron.d/rsnapshot alatt”, ha nem létezik, hozzon létre egyet, és add hozzá a következő sorokat.

Alapértelmezés szerint a szabályok megjegyzésekkel vannak ellátva, ezért az értékek engedélyezéséhez el kell távolítania a „#” jelet az ütemezési szakasz elől.

This is a sample cron file for rsnapshot.
The values used correspond to the examples in /etc/rsnapshot.conf.
There you can also set the backup points and many other things.
#
To activate this cron file you have to uncomment the lines below.
Feel free to adapt it to your needs.

0     */4    * * *    root    /usr/bin/rsnapshot hourly
30     3     * * *    root    /usr/bin/rsnapshot daily
0      3     * * 1    root    /usr/bin/rsnapshot weekly
30     2     1 * *    root    /usr/bin/rsnapshot monthly

Hadd magyarázzam el pontosan, mit csinál a fenti cron szabályok:

  1. 4 óránként fut, és létrehoz egy óránkénti könyvtárat a /backup könyvtárban.
  2. Naponta 3:30kor fut, és hozzon létre egy napi könyvtárat a /backup könyvtárban.
  3. hetente fut minden hétfőn 3:00kor, és létrehoz egy heti könyvtárat a /backup alatt. könyvtár.
  4. Minden havonta 2:30kor fut, és hozzon létre egy havi könyvtárat a /backup könyvtárban.

A cron-szabályok működésének jobb megértése érdekében azt javaslom, hogy olvassa el a leíró cikkünket.

  1. 11 Cron ütemezési példák

7. lépés: Rsnapshot jelentések

Az rsnapshot remek kis jelentéskészítő Perl-szkriptet biztosít, amely e-mail-értesítést küld az adatok biztonsági mentése során történt minden részlettel. A szkript beállításához át kell másolnia a szkriptet valahova a „/usr/local/bin” mappába, és futtathatóvá kell tennie.

cp /usr/share/doc/rsnapshot-1.3.1/utils/rsnapreport.pl /usr/local/bin
chmod +x /usr/local/bin/rsnapreport.pl

Ezután adja hozzá a „–stats” paramétert az „rsnapshot.conf” fájlhoz az rsync hosszú argumentumaihoz.

vi /etc/rsnapshot.conf
rsync_long_args --stats	--delete        --numeric-ids   --delete-excluded

Most szerkessze a korábban hozzáadott crontab szabályokat, és hívja meg az rsnapreport.pl szkriptet, hogy a jelentéseket a megadott e-mail címre továbbítsa.

This is a sample cron file for rsnapshot.
The values used correspond to the examples in /etc/rsnapshot.conf.
There you can also set the backup points and many other things.
#
To activate this cron file you have to uncomment the lines below.
Feel free to adapt it to your needs.

0     */4    * * *    root    /usr/bin/rsnapshot hourly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup" [email 
30     3     * * *    root    /usr/bin/rsnapshot daily 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Daily Backup" [email 
0      3     * * 1    root    /usr/bin/rsnapshot weekly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Weekly Backup" [email 
30     2     1 * *    root    /usr/bin/rsnapshot monthly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Montly Backup" [email 

Ha a fenti bejegyzéseket helyesen adta hozzá, az alábbihoz hasonló jelentést fog kapni az e-mail címére.

SOURCE           TOTAL FILES	FILES TRANS	TOTAL MB    MB TRANS   LIST GEN TIME  FILE XFER TIME
--------------------------------------------------------------------------------------------------------
localhost/          185734	   11853   	 2889.45    6179.18    40.661 second   0.000 seconds

Referencia hivatkozások

  1. rsnapshot kezdőlap

Egyelőre ennyi, ha bármilyen probléma adódik a telepítés során, írjon nekem egy megjegyzést. Addig is figyelje a TecMint oldalt, ahol további érdekes cikkeket olvashat a nyílt forráskódú világról.