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.
- 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.
- 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:
- Kako napraviti sigurnosnu kopiju/sinhronizirati direktorije pomoću alata Rsync (Remote Sync).
- 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:
- config_version 1.2=Verzija konfiguracionog fajla
- snapshot_root=Odredište sigurnosne kopije za pohranjivanje snimaka
- cmd_cp=Putanja do komande kopiranja
- cmd_rm=Putanja za uklanjanje komande
- cmd_rsync=Put do rsync
- cmd_ssh=Put do SSH
- cmd_logger=Put do komandnog interfejsa ljuske do syslog
- cmd_du=Putanja do komande za korištenje diska
- interval po satu=Koliko rezervnih kopija po satu treba čuvati.
- interval dnevno=Koliko dnevnih rezervnih kopija treba čuvati.
- interval sedmično=Koliko sedmičnih rezervnih kopija treba čuvati.
- interval mjesečno=Koliko mjesečnih rezervnih kopija treba čuvati.
- ssh_args=Opcioni SSH argumenti, kao što je drugačiji port (-p )
- verbose=Samo po sebi razumljivo
- loglevel=Samo po sebi razumljivo
- logfile=Put do datoteke dnevnika
- exclude_file=Put do datoteke za izuzimanje (detaljnije će biti objašnjeno)
- rsync_long_args=Dugi argumenti za prosleđivanje u rsync
- lockfile=Samo po sebi razumljivo
- 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:
- Pokreće se svaka 4 sata i kreira satnu direktorij u /backup direktoriju.
- Pokreće se svakodnevno u 3:30 ujutro i kreirajte dnevno direktorij u direktoriju /backup.
- Pokreće se tjedno svakog ponedjeljka u 3:00 ujutro i kreira tjedno direktorij pod /backup direktorijum.
- 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.
- 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
- 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.