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.
- 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.
- 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:
- Kako sigurnosno kopirati/sinkronizirati direktorije pomoću alata Rsync (daljinska sinkronizacija).
- 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:
- config_version 1.2=Verzija konfiguracijske datoteke
- snapshot_root=Odredište sigurnosne kopije za pohranjivanje snimaka
- cmd_cp=Put za kopiranje naredbe
- cmd_rm=Put za uklanjanje naredbe
- cmd_rsync=Put do rsync
- cmd_ssh=Put do SSH
- cmd_logger=Put do naredbenog sučelja ljuske do syslog-a
- cmd_du=Put do naredbe korištenja diska
- interval po satu=Koliko sigurnosnih kopija po satu treba čuvati.
- dnevni interval=Koliko dnevnih sigurnosnih kopija čuvati.
- tjedni interval=Koliko tjednih sigurnosnih kopija čuvati.
- mjesečni interval=Koliko mjesečnih sigurnosnih kopija čuvati.
- ssh_args=Neobavezni SSH argumenti, kao što je drugi port (-p)
- verbose=Jasno samo po sebi
- loglevel=Jasno samo po sebi
- logfile=Put do datoteke dnevnika
- exclude_file=Put do izuzete datoteke (bit će detaljnije objašnjeno)
- rsync_long_args=Dugi argumenti za prosljeđivanje u rsync
- lockfile=Jasno samo po sebi
- 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:
- Pokreće se svaka 4 sata i stvara svaki sat direktorij u /backup direktoriju.
- Pokreće se svaki dan u 3:30 ujutro i stvorite dnevni direktorij u /backup direktoriju.
- Pokreće se tjedno svakog ponedjeljka u 3:00 ujutro i stvorite tjedni direktorij pod /backup imenik.
- 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.
- 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
- 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.