Rsnapshot (bazirano na Rsync) - Lokalni/udaljeni uslužni program za sigurnosnu kopiju sistema datoteka za Linux


rsnapshot je lokalni/udaljeni uslužni program za sigurnosnu kopiju otvorenog koda koji je napisan na Perl jeziku koji koristi moć < jaki>Rsync i SSH program za kreiranje planiranih inkrementalnih sigurnosnih kopija Linux/Unix sistema datoteka, dok zauzimaju samo prostor jedna potpuna sigurnosna kopija plus razlike i čuvajte te sigurnosne kopije na lokalnom disku na drugom tvrdom disku, eksternom USB stiku , NFS disk montiran ili jednostavno preko mreže na drugu mašinu putem SSH.

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

Korak 1: Instaliranje Rsnapshot Backup-a u Linux

Instalacija rsnapshot-a pomoću Yum i APT može se neznatno razlikovati ako koristite Red Hat i Debianbazirane distribucije.

Na RHEL/CentOS

Prvo ćete morati instalirati i omogućiti spremište treće strane pod nazivom EPEL. Molimo slijedite link ispod da instalirate i omogućite pod vašim RHEL/CentOS sistemima. Korisnicima Fedora nisu potrebne nikakve posebne konfiguracije spremišta.

  1. Instalirajte i omogućite EPEL spremište u RHEL/CentOS 6/5/4

Nakon što postavite stvari, instalirajte rsnapshot iz komandne linije kao što je prikazano.

yum install rsnapshot
Na Debian/Ubuntu/Linux Mint

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

apt-get install rsnapshot

Korak 2: Podešavanje SSH prijave bez lozinke

Za pravljenje rezervnih kopija udaljenih Linux servera, vaš rsnapshot backup server će se moći povezati preko SSH bez lozinke. Da biste to postigli, morat ćete kreirati SSH javni i privatni ključ za autentifikaciju na rsnapshot serveru. Slijedite vezu ispod da generišete javne i privatne ključeve na vašem rsnapshot serveru za rezervnu kopiju.

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

Korak 3: Konfiguriranje Rsnapshot-a

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

vi /etc/rsnapshot.conf

Zatim kreirajte direktorij rezervnih kopija u koji želite pohraniti sve svoje sigurnosne kopije. U mom slučaju lokacija moje rezervne kopije je “/data/backup/ ”. Potražite i uredite sljedeći parametar da postavite lokaciju sigurnosne kopije.

snapshot_root			 /data/backup/

Također dekomentirajte liniju “cmd_ssh” kako biste omogućili preuzimanje daljinskih sigurnosnih kopija preko SSH. Da dekomentirate red, uklonite “#” ispred sljedećeg reda tako da rsnapshot može sigurno prenijeti vaše podatke na rezervni server.

cmd_ssh			/usr/bin/ssh

Zatim morate odlučiti koliko starih rezervnih kopija želite zadržati, jer rsnapshot nije imao pojma koliko često želite da pravite snimke. Morate odrediti koliko podataka želite sačuvati, dodati intervale za čuvanje i koliko svakog od njih.

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

#########################################
          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 “ssh_args” varijabla. Ako ste promijenili zadani SSH port (22) u nešto drugo, morate navesti taj broj porta vašeg servera za udaljenu sigurnosnu kopiju.

ssh_args		-p 7851

Konačno, dodajte svoje lokalne i udaljene direktorije sigurnosne kopije koje želite sigurnosno kopirati.

Sigurnosna kopija lokalnih direktorija

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

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

Ako želite da napravite rezervnu kopiju direktorijuma udaljenog servera, onda morate da kažete rsnapshot-u gde je server i koje direktorijume želite da napravite rezervnu kopiju. Ovdje pravim sigurnosnu kopiju svog udaljenog servera “/home” direktorija u direktoriju “/data/backup” na rsnapshot serveru.

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

Pročitajte također:

  1. Kako napraviti sigurnosnu kopiju/sinhronizirati direktorije pomoću alata Rsync (Remote Sync).
  2. Kako prenijeti datoteke/fascikle koristeći SCP komandu
Izuzmi datoteke i direktorije

Ovdje ću isključiti sve, a zatim samo konkretno definirati ono što želim napraviti sigurnosnu kopiju. Da biste to učinili, morate kreirati datoteku za izuzimanje.

vi /data/backup/tecmint.exclude

Prvo nabavite listu direktorija za koje želite da napravite sigurnosnu kopiju i dodajte ( – * ) kako biste isključili sve ostalo. Ovo će napraviti sigurnosnu kopiju samo onoga što ste naveli u datoteci. Moj fajl za izuzimanje izgleda slično kao ispod.

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

Korištenje opcije isključivanja fajla može biti vrlo zeznuto zbog korištenja 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 završili sa početnom konfiguracijom. Sačuvajte konfiguracioni fajl “/etc/rsnapshot.conf” pre nego što krenete dalje. Postoji mnogo opcija za objašnjenje, ali evo mog uzorka 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 kako slijedi:

  1. config_version 1.2=Verzija konfiguracionog fajla
  2. snapshot_root=Odredište sigurnosne kopije za pohranjivanje snimaka
  3. cmd_cp=Putanja do komande kopiranja
  4. cmd_rm=Putanja za uklanjanje komande
  5. cmd_rsync=Put do rsync
  6. cmd_ssh=Put do SSH
  7. cmd_logger=Put do komandnog interfejsa ljuske do syslog
  8. cmd_du=Putanja do komande za korištenje diska
  9. interval po satu=Koliko rezervnih kopija po satu treba čuvati.
  10. interval dnevno=Koliko dnevnih rezervnih kopija treba čuvati.
  11. interval sedmično=Koliko sedmičnih rezervnih kopija treba čuvati.
  12. interval mjesečno=Koliko mjesečnih rezervnih kopija treba čuvati.
  13. ssh_args=Opcioni SSH argumenti, kao što je drugačiji port (-p )
  14. verbose=Samo po sebi razumljivo
  15. loglevel=Samo po sebi razumljivo
  16. logfile=Put do datoteke dnevnika
  17. exclude_file=Put do datoteke za izuzimanje (detaljnije će biti objašnjeno)
  18. rsync_long_args=Dugi argumenti za prosleđivanje u rsync
  19. lockfile=Samo po sebi razumljivo
  20. sigurnosna kopija=Puna putanja do onoga što treba napraviti sigurnosnu kopiju praćeno relativnim putem postavljanja.

Korak 4: Provjerite konfiguraciju Rsnapshot-a

Kada završite sa svom konfiguracijom, vrijeme je da provjerite da li sve radi kako se očekuje. Pokrenite sljedeću naredbu da provjerite da li vaša konfiguracija ima ispravnu sintaksu.

rsnapshot configtest

Syntax OK

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

Zatim izvršite probni rad na jednom od snimaka kako biste bili sigurni da generišemo ispravne rezultate. Koristimo parametar “hourly” da izvršimo probno pokretanje koristeći argument -t (test). Ova naredba ispod će prikazati opširnu listu stvari koje će raditi, a da ih zapravo ne radi.

rsnapshot -t hourly
Sample Output
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 komanda govorirsnapshot da kreira rezervnu kopiju "svakog sata". On zapravo ispisuje komande koje će izvršiti kada ga zaista izvršimo.

Korak 5: Ručno pokretanje Rsnapshot-a

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

rsnapshot hourly

Gornja komanda će pokrenuti skriptu za sigurnosnu kopiju sa svom konfiguracijom koju smo dodali u datoteku rsnapshot.conf i kreira direktorij “backup”, a zatim kreira strukturu direktorija ispod njega koji organizuje naše fajlove. Nakon što pokrenete gornju naredbu, možete provjeriti rezultate tako što ćete otići u direktorij rezervne kopije i navesti strukturu direktorija koristeći naredbu 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

Da automatizujete proces, morate zakazati rsnapshot da se pokrene u određenim intervalima iz Crona. Podrazumevano, rsnapshot dolazi sa cron fajlom pod “/etc/cron.d/rsnapshot“, ako ne postoji kreirajte ga i dodajte mu sljedeće redove.

Standardno se pravila komentarišu, tako da morate ukloniti “# ” ispred odjeljka za zakazivanje da omogućite ove 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

Dozvolite mi da objasnim tačno šta gore navedena cron pravila rade:

  1. Pokreće se svaka 4 sata i kreira satnu direktorij u /backup direktoriju.
  2. Pokreće se svakodnevno u 3:30 ujutro i kreirajte dnevno direktorij u direktoriju /backup.
  3. Pokreće se tjedno svakog ponedjeljka u 3:00 ujutro i kreira tjedno direktorij pod /backup direktorijum.
  4. Pokreće se svakog mjesečnog u 2:30 ujutro i kreira mjesečno direktorij u /backup direktoriju.

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

  1. 11 Primjeri planiranja Cron-a

Korak 7: Rsnapshot izvještaji

rsnapshot pruža elegantnu malu Perl skriptu za izvješćivanje koja vam šalje upozorenje e-poštom sa svim detaljima o tome šta se dogodilo tokom vaše sigurnosne kopije podataka. Da biste postavili ovu skriptu, morate je kopirati 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 vašu datoteku “rsnapshot.conf” u odjeljku 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 da prosledite izveštaje na određenu 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 gornje unose, dobit ćete izvještaj na svoju e-mail adresu sličnu dolje.

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 homepage

To je to za sada, ako dođe do bilo kakvih problema tokom instalacije, ostavite mi komentar. Do tada pratite TecMint za još zanimljivih članaka o svijetu otvorenog koda.