Rsnapshot (temeljen na Rsync) - uslužni program za sigurnosno kopiranje lokalnog/udaljenog sustava datoteka za Linux


rsnapshot je uslužni program za sigurnosno kopiranje lokalnog/daljinskog datotečnog sustava otvorenog koda napisan na Perl jeziku koji koristi snagu < programRsync i SSH za stvaranje planiranih inkrementalnih sigurnosnih kopija Linux/Unix datotečnih sustava, dok zauzimaju samo prostor jednu punu sigurnosnu kopiju plus razlike i čuvajte te sigurnosne kopije na lokalnom disku na drugom tvrdom disku, vanjskom USB sticku , pogon montiran na NFS ili jednostavno preko mreže na drugo računalo putem SSH.

Ovaj članak će pokazati kako instalirati, postaviti i koristiti rsnapshot za stvaranje inkrementalnih satnih, dnevnih, tjednih i < jake>mjesečne lokalne sigurnosne kopije, kao i daljinske sigurnosne kopije. Da biste izvršili sve korake u ovom članku, morate biti root korisnik.

Korak 1: Instalacija Rsnapshot Backupa u Linuxu

Instalacija rsnapshot pomoću Yum i APT može se malo razlikovati ako koristite Red Hat i Distribucije temeljene na Debianu.

Na RHEL/CentOS

Najprije ćete morati instalirati i omogućiti spremište treće strane pod nazivom EPEL. Slijedite poveznicu u nastavku da biste instalirali i omogućili pod svojim RHEL/CentOS sustavima. Korisnicima Fedore nisu potrebne posebne konfiguracije spremišta.

  1. Instalirajte i omogućite EPEL repozitorij u RHEL/CentOS 6/5/4

Nakon što sve postavite, instalirajte rsnapshot iz naredbenog retka kao što je prikazano.

yum install rsnapshot
Na Debian/Ubuntu/Linux Mint

Prema zadanim postavkama, rsnapshot je uključen u repozitorije Ubuntu, tako da ga možete instalirati pomoću naredbe apt-get kao što je prikazano.

apt-get install rsnapshot

Korak 2: Postavljanje SSH prijave bez lozinke

Za sigurnosno kopiranje udaljenih Linux poslužitelja, vaš rsnapshot backup poslužitelj moći će se povezati putem SSH bez lozinke. Da biste to postigli, morat ćete stvoriti SSH javne i privatne ključeve za provjeru autentičnosti na poslužitelju rsnapshot. Slijedite donju poveznicu za generiranje javnih i privatnih ključeva na vašem rezervnom poslužitelju rsnapshot.

  1. Stvorite SSH prijavu bez lozinke koristeći SSH Keygen

Korak 3: Konfiguriranje Rsnapshota

Sada ćete morati urediti i dodati neke parametre u rsnapshot konfiguracijsku datoteku. Otvorite datoteku rsnapshot.conf pomoću uređivača vi ili nano.

vi /etc/rsnapshot.conf

Zatim stvorite direktorij sigurnosne kopije u koji želite pohraniti sve svoje sigurnosne kopije. U mom slučaju moja lokacija direktorija sigurnosne kopije je “/data/backup/”. Potražite i uredite sljedeći parametar za postavljanje sigurnosne kopije.

snapshot_root			 /data/backup/

Također skinite komentar s retka “cmd_ssh” kako biste omogućili daljinsko sigurnosno kopiranje putem SSH. Za uklanjanje komentara iz retka uklonite “#” ispred sljedećeg retka kako bi rsnapshot mogao sigurno prenijeti vaše podatke na rezervni poslužitelj.

cmd_ssh			/usr/bin/ssh

Zatim morate odlučiti koliko starih sigurnosnih kopija želite zadržati, jer rsnapshot nije imao pojma koliko često želite snimati snimke. Morate odrediti koliko podataka želite spremiti, dodati intervale koje želite zadržati i koliko svakog od njih.

Pa, zadane postavke su dovoljno dobre, ali ipak bih želio da omogućite “mjesečni” interval kako biste također mogli imati dugoročne sigurnosne kopije. Uredite ovaj odjeljak tako da izgleda slično postavkama u nastavku.

#########################################
          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

Još jedna stvar koju trebate urediti je varijabla “ssh_args”. Ako ste promijenili zadani SSH port (22) u nešto drugo, trebate navesti taj broj porta vašeg poslužitelja za udaljeno sigurnosno kopiranje.

ssh_args		-p 7851

Na kraju dodajte svoje lokalne i udaljene sigurnosne kopije direktorija koje želite sigurnosno kopirati.

Sigurnosna kopija lokalnih direktorija

Ako ste odlučili napraviti sigurnosnu kopiju svojih direktorija lokalno na istom računalu, unos sigurnosne kopije bi izgledao ovako. Na primjer, radim sigurnosnu kopiju svojih direktorija /tecmint i /etc.

backup		/tecmint/		localhost/
backup		/etc/			localhost/
Sigurnosna kopija udaljenih imenika

Ako želite napraviti sigurnosnu kopiju direktorija udaljenog poslužitelja, tada trebate reći rsnapshotu gdje je poslužitelj i koje direktorije želite sigurnosno kopirati. Ovdje pravim sigurnosnu kopiju svog udaljenog poslužitelja “/home” direktorija u “/data/backup” direktorija na rsnapshot poslužitelju.

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

Pročitajte također:

  1. Kako sigurnosno kopirati/sinkronizirati direktorije pomoću alata Rsync (daljinska sinkronizacija).
  2. Kako prenijeti datoteke/mape pomoću SCP naredbe
Isključi datoteke i direktorije

Ovdje ću isključiti sve, a zatim samo konkretno definirati što želim sigurnosno kopirati. Da biste to učinili, morate stvoriti datoteku za izuzimanje.

vi /data/backup/tecmint.exclude

Najprije nabavite popis direktorija za koje želite sigurnosno kopirati i dodajte ( – * ) kako biste isključili sve ostalo. Ovo će sigurnosno kopirati samo ono što ste naveli u datoteci. Moja datoteka za isključivanje izgleda slično kao ispod.

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

Korištenje opcije isključivanja datoteke može biti vrlo nezgodno zbog upotrebe rsync rekurzije. Dakle, moj gornji primjer možda nije ono što tražite. Zatim dodajte datoteku za izuzimanje u datoteku rsnapshot.conf.

exclude_file    /data/backup/tecmint.exclude

Konačno, skoro ste gotovi s početnom konfiguracijom. Spremite konfiguracijsku datoteku “/etc/rsnapshot.conf” prije nego što krenete dalje. Postoji mnogo opcija za objasniti, ali ovdje je moj primjer konfiguracijske datoteke.

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/

Sve gore navedene opcije i objašnjenja argumenata su sljedeći:

  1. config_version 1.2=Verzija konfiguracijske datoteke
  2. snapshot_root=Odredište sigurnosne kopije za pohranjivanje snimaka
  3. cmd_cp=Put za kopiranje naredbe
  4. cmd_rm=Put za uklanjanje naredbe
  5. cmd_rsync=Put do rsync
  6. cmd_ssh=Put do SSH
  7. cmd_logger=Put do naredbenog sučelja ljuske do syslog-a
  8. cmd_du=Put do naredbe korištenja diska
  9. interval po satu=Koliko sigurnosnih kopija po satu treba čuvati.
  10. dnevni interval=Koliko dnevnih sigurnosnih kopija čuvati.
  11. tjedni interval=Koliko tjednih sigurnosnih kopija čuvati.
  12. mjesečni interval=Koliko mjesečnih sigurnosnih kopija čuvati.
  13. ssh_args=Neobavezni SSH argumenti, kao što je drugi port (-p)
  14. verbose=Jasno samo po sebi
  15. loglevel=Jasno samo po sebi
  16. logfile=Put do datoteke dnevnika
  17. exclude_file=Put do izuzete datoteke (bit će detaljnije objašnjeno)
  18. rsync_long_args=Dugi argumenti za prosljeđivanje u rsync
  19. lockfile=Jasno samo po sebi
  20. sigurnosna kopija=Puni put do onoga što će biti sigurnosno kopiran nakon čega slijedi relativni put postavljanja.

Korak 4: Provjerite konfiguraciju Rsnapshota

Nakon što završite sa svim svojim konfiguracijama, vrijeme je da provjerite radi li sve prema očekivanjima. Pokrenite sljedeću naredbu da provjerite ima li vaša konfiguracija ispravnu sintaksu.

rsnapshot configtest

Syntax OK

Ako je sve ispravno konfigurirano, primit ćete poruku “Sintaksa OK”. Ako dobijete bilo kakvu poruku o pogrešci, to znači da morate ispraviti te pogreške prije pokretanja rsnapshot.

Zatim napravite probni rad na jednoj od snimki kako biste bili sigurni da generiramo točne rezultate. Uzimamo parametar “po satu” za probno pokretanje pomoću argumenta -t (test). Ova donja naredba prikazat će detaljan popis stvari koje će učiniti, a da ih zapravo ne učini.

rsnapshot -t hourly
Uzorak izlaza
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/

Napomena: Gornja naredba govori rsnapshotu da izradi sigurnosnu kopiju “svakog sata”. Zapravo ispisuje naredbe koje će izvesti kada je stvarno izvršimo.

Korak 5: Ručno pokretanje Rsnapshota

Nakon što provjerite svoje rezultate, možete ukloniti opciju “-t” da stvarno pokrenete naredbu.

rsnapshot hourly

Gornja naredba pokrenut će skriptu za sigurnosno kopiranje sa svim konfiguracijama koje smo dodali u datoteci rsnapshot.conf i stvorit će direktorij “backup” i zatim stvoriti strukturu direktorija ispod njega koji organizira naše datoteke. Nakon pokretanja gornje naredbe, možete provjeriti rezultate tako da odete u direktorij sigurnosne kopije i ispišete strukturu direktorija pomoću naredbe ls -l kao što je prikazano.

cd /data/backup
ls -l

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

Korak 6: Automatizacija procesa

Kako biste automatizirali proces, morate zakazati rsnapshot koji će se pokretati u određenim intervalima iz Cron-a. Prema zadanim postavkama, rsnapshot dolazi s cron datotekom pod “/etc/cron.d/rsnapshot“, ako ne postoji, stvorite je i dodajte mu sljedeće retke.

Prema zadanim postavkama pravila su komentirana, tako da trebate ukloniti “#” ispred odjeljka za zakazivanje kako biste omogućili te vrijednosti.

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

Dopustite mi da točno objasnim što gornja cron pravila rade:

  1. Pokreće se svaka 4 sata i stvara svaki sat direktorij u /backup direktoriju.
  2. Pokreće se svaki dan u 3:30 ujutro i stvorite dnevni direktorij u /backup direktoriju.
  3. Pokreće se tjedno svakog ponedjeljka u 3:00 ujutro i stvorite tjedni direktorij pod /backup imenik.
  4. Pokreće se svaki mjesečno u 2:30 ujutro i stvorite mjesečni imenik pod /backup imenikom.

Da biste bolje razumjeli kako funkcioniraju cron pravila, predlažem da pročitate naš članak koji opisuje.

  1. 11 primjera Cron rasporeda

Korak 7: Rsnapshot izvješća

Rsnapshot pruža zgodnu malu Perl skriptu za izvješćivanje koja vam šalje upozorenje e-poštom sa svim pojedinostima o tome što se dogodilo tijekom sigurnosne kopije podataka. Da biste postavili ovu skriptu, trebate kopirati skriptu negdje pod “/usr/local/bin” i učiniti je izvršnom.

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

Zatim dodajte parametar “–stats” u svoju datoteku “rsnapshot.conf” u odjeljak dugih argumenata rsync-a.

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

Sada uredite crontab pravila koja su ranije dodana i pozovite skriptu rsnapreport.pl za prosljeđivanje izvješća na navedenu adresu e-pošte.

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 

Nakon što ste ispravno dodali gore navedene unose, dobit ćete izvješće na svoju e-mail adresu slično donjem.

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

Referentne veze

  1. rsnapshot početna stranica

To je to za sada, ako se pojave problemi tijekom instalacije, ostavite mi komentar. Do tada pratite TecMint za još zanimljivih članaka o svijetu otvorenog koda.