Rsnapshot (Rsync-pohjainen) - Paikallinen/etätiedostojärjestelmän varmuuskopiointiapuohjelma Linuxille


rsnapshot on avoimen lähdekoodin paikallinen/etä-tiedostojärjestelmän varmuuskopiointiapuohjelma, joka on kirjoitettu Perl-kielellä, mikä hyödyttää Rsync- ja SSH-ohjelmat, joilla luodaan ajoitettuja lisävarmuuskopioita Linux/Unix-tiedostojärjestelmistä, mutta ne vievät vain tilan yksi täysi varmuuskopio plus erot ja säilytä varmuuskopiot paikallisella asemalla eri kiintolevylle, ulkoiselle USB-tikulle , NFS-asemaan tai yksinkertaisesti verkon kautta toiseen koneeseen SSH:n kautta.

Tämä artikkeli näyttää, kuinka rsnapshot asennetaan, määritetään ja käytetään asteittain tuntikohtaisten, päivittäisten, viikoittaisten ja kuukausittaiset paikalliset varmuuskopiot sekä etävarmuuskopiot. Jotta voit suorittaa kaikki tämän artikkelin vaiheet, sinun on oltava root-käyttäjä.

Vaihe 1: Rsnapshot Backupin asentaminen Linuxiin

rsnapshotin asennus Yumia ja APT:tä käyttämällä voi vaihdella hieman, jos käytät Red Hatia ja Debian-pohjaiset jakelut.

RHEL/CentOS:ssä

Ensin sinun on asennettava ja otettava käyttöön kolmannen osapuolen arkisto nimeltä EPEL. Seuraa alla olevaa linkkiä asentaaksesi ja ottaaksesi käyttöön RHEL/CentOS-järjestelmäsi. Fedora-käyttäjät eivät vaadi erityisiä arkistomäärityksiä.

  1. Asenna ja ota EPEL-varasto käyttöön RHEL/CentOS 6/5/4 -versiossa

Kun olet saanut asetukset valmiiksi, asenna rsnapshot komentoriviltä kuvan mukaisesti.

yum install rsnapshot
Debian/Ubuntu/Linux Mint

Oletuksena rsnapshot sisältyy Ubuntun arkistoihin, joten voit asentaa sen käyttämällä apt-get-komentoa kuvan mukaisesti.

apt-get install rsnapshot

Vaihe 2: SSH:n salasanattoman kirjautumisen määrittäminen

Jos haluat varmuuskopioida Linux-etäpalvelimia, rsnapshot-varmuuskopiopalvelimesi voi muodostaa yhteyden SSH:n kautta ilman salasanaa. Tämän saavuttamiseksi sinun on luotava SSH-julkinen ja yksityinen avaimet todentaaksesi rsnapshot-palvelimella. Seuraa alla olevaa linkkiä luodaksesi julkiset ja yksityiset avaimet rsnapshot-varmuuskopiopalvelimellesi.

  1. Luo salasanaton SSH-kirjautuminen SSH Keygenillä

Vaihe 3: Määritä Rsnapshot

Nyt sinun on muokattava ja lisättävä joitain parametreja rsnapshot-määritystiedostoon. Avaa rsnapshot.conf-tiedosto vi- tai nano-editorilla.

vi /etc/rsnapshot.conf

Luo seuraavaksi varmuuskopiohakemisto, johon haluat tallentaa kaikki varmuuskopiosi. Omassa tapauksessani varmuuskopiohakemistoni on "/data/backup/". Etsi ja muokkaa seuraavaa parametria varmuuskopion sijainnin määrittämiseksi.

snapshot_root			 /data/backup/

Poista myös kommentit cmd_ssh-riviltä, jotta voit ottaa etävarmuuskopioita SSH:n kautta. Poistaaksesi rivin kommentin, poista "#" seuraavan rivin edestä, jotta rsnapshot voi siirtää tietosi turvallisesti varmuuskopiopalvelimelle.

cmd_ssh			/usr/bin/ssh

Seuraavaksi sinun on päätettävä, kuinka monta vanhaa varmuuskopiota haluat säilyttää, koska rsnapshotilla ei ollut aavistustakaan, kuinka usein haluat ottaa tilannekuvia. Sinun on määritettävä, kuinka paljon tietoja tallennetaan, lisättävä säilytettävät aikavälit ja kuinka monta kutakin.

No, oletusasetukset ovat riittävät, mutta silti haluaisin sinun ottavan käyttöön "kuukausittaisen" -välin, jotta sinulla olisi myös pidemmän aikavälin varmuuskopiot. Muokkaa tätä osiota näyttämään samanlaiselta kuin alla olevat asetukset.

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

Vielä yksi asia, jota sinun on muokattava, on ssh_args-muuttuja. Jos olet vaihtanut oletusarvoisen SSH-portin (22) joksikin muuksi, sinun on määritettävä etävarmuuskopiointipalvelimesi portin numero.

ssh_args		-p 7851

Lisää lopuksi paikalliset ja etävarmuuskopiohakemistot, jotka haluat varmuuskopioida.

Varmuuskopioi paikalliset hakemistot

Jos olet päättänyt varmuuskopioida hakemistosi paikallisesti samalle koneelle, varmuuskopiomerkintä näyttää tältä. Otan esimerkiksi varmuuskopion /tecmint- ja /etc-hakemistoistani.

backup		/tecmint/		localhost/
backup		/etc/			localhost/
Varmuuskopioi etähakemistot

Jos haluat varmuuskopioida etäpalvelinhakemistot, sinun on kerrottava rsnapshotille, missä palvelin on ja mitkä hakemistot haluat varmuuskopioida. Tässä otan varmuuskopion etäpalvelimeni /home-hakemistosta rsnapshot-palvelimen /data/backup-hakemistossa.

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

Lue myös:

  1. Hakemistojen varmuuskopiointi/synkronointi Rsync (Remote Sync) -työkalun avulla
  2. Tiedostojen/kansioiden siirtäminen SCP-komennolla
Sulje pois tiedostot ja hakemistot

Jätän tässä pois kaiken ja määritän sitten vain, mitä haluan varmuuskopioida. Tätä varten sinun on luotava poissulkeva tiedosto.

vi /data/backup/tecmint.exclude

Hanki ensin luettelo hakemistoista, jotka haluat varmuuskopioida, ja lisää ( – * ) sulkeaksesi pois kaiken muun. Tämä varmuuskopioi vain sen, mitä olet listannut tiedostoon. Poissulkemistiedostoni näyttää samanlaiselta kuin alla.

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

Tiedoston poissulkemisasetuksen käyttäminen voi olla hyvin hankalaa rsync-rekursion käytön vuoksi. Joten yllä oleva esimerkkini ei ehkä ole sitä, mitä etsit. Lisää seuraavaksi poissulkeva tiedosto rsnapshot.conf-tiedostoon.

exclude_file    /data/backup/tecmint.exclude

Lopulta olet melkein valmis alkuperäisen kokoonpanon kanssa. Tallenna /etc/rsnapshot.conf-määritystiedosto ennen kuin jatkat. Selitettäväksi on monia vaihtoehtoja, mutta tässä on esimerkkimääritystiedostoni.

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/

Kaikki yllä olevat vaihtoehdot ja argumenttien selitykset ovat seuraavat:

  1. config_version 1.2=Määritystiedoston versio
  2. snapshot_root=Varmuuskopion kohde tilannekuvien tallentamiseen
  3. cmd_cp=Kopiointikomennon polku
  4. cmd_rm=Polku komennon poistamiseen
  5. cmd_rsync=Polku rsynciin
  6. cmd_ssh=SSH-polku
  7. cmd_logger=Polku shell-komentoliittymään syslogiin
  8. cmd_du=Levyn käyttöpolku
  9. tuntiväli=kuinka monta tunnin varmuuskopiota säilytetään.
  10. väli päivittäin=kuinka monta päivittäistä varmuuskopiota pitää säilyttää.
  11. viikoittainen aikaväli=kuinka monta viikoittaista varmuuskopiota pitää säilyttää.
  12. kuukausiväli=kuinka monta kuukausittaista varmuuskopiota pitää säilyttää.
  13. ssh_args=Valinnaiset SSH-argumentit, kuten eri portti (-p )
  14. verbose=Itsestään selvä
  15. loglevel=itsestään selvä
  16. logfile=Polku lokitiedostoon
  17. exclude_file=Polku poissulkevaan tiedostoon (selitän tarkemmin)
  18. rsync_long_args=Pitkät argumentit välitettäväksi rsyncille
  19. lockfile=Itsestään selvä
  20. Varmuuskopio=Täysi polku varmuuskopioitavaan kohteeseen ja sen jälkeen suhteellinen sijoittelupolku.

Vaihe 4: Tarkista Rsnapshot-asetukset

Kun olet tehnyt kaikki määritykset, on aika varmistaa, että kaikki toimii odotetulla tavalla. Suorita seuraava komento varmistaaksesi, että kokoonpanosi syntaksi on oikea.

rsnapshot configtest

Syntax OK

Jos kaikki on määritetty oikein, saat Syntaksi OK -viestin. Jos saat virheilmoituksia, sinun on korjattava ne ennen rsnapshotin suorittamista.

Tee seuraavaksi koeajo jollakin tilannekuvalla varmistaaksesi, että tuotamme oikeat tulokset. Käytämme hourly-parametria tehdäksemme testiajon -t (test) -argumentilla. Tämä alla oleva komento näyttää monisanaisen luettelon asioista, joita se tekee tekemättä niitä.

rsnapshot -t hourly
Näytelähtö
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/

Huomaa: Yllä oleva komento käskee rsnapshot -ohjelman luomaan tuntikohtaisen-varmuuskopion. Se itse asiassa tulostaa komennot, jotka se suorittaa, kun suoritamme sen todella.

Vaihe 5: Suorita Rsnapshot manuaalisesti

Kun olet tarkistanut tulokset, voit poistaa "-t" -vaihtoehdon suorittaaksesi komennon todella.

rsnapshot hourly

Yllä oleva komento suorittaa varmuuskopiokomentosarjan kaikilla määrityksillä, jotka lisäsimme rsnapshot.conf-tiedostoon, ja luo varmuuskopio-hakemiston ja luo sitten hakemistorakenteen sen alle. joka järjestää tiedostomme. Yllä olevan komennon suorittamisen jälkeen voit tarkistaa tulokset menemällä varmuuskopiohakemistoon ja luettelemalla hakemistorakenteen komennolla ls -l kuvan mukaisesti.

cd /data/backup
ls -l

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

Vaihe 6: Prosessin automatisointi

Prosessin automatisoimiseksi sinun on ajoitettava rsnapshot suoritettavaksi tietyin väliajoin Cronista. Oletuksena rsnapshot sisältää cron-tiedoston kohdassa /etc/cron.d/rsnapshot, jos sitä ei ole olemassa, luo sellainen ja lisää siihen seuraavat rivit.

Oletusarvoisesti säännöt on kommentoitu, joten sinun on poistettava "#" ajoitusosion edestä ottaaksesi nämä arvot käyttöön.

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

Selitän tarkasti, mitä yllä olevat cronin säännöt tekevät:

  1. Suoritetaan 4 tunnin välein ja luo tuntikohtaisen hakemiston /backup-hakemistoon.
  2. Toimii päivittäin klo 3.30 ja luo päivittäinen hakemisto /backup-hakemistoon.
  3. Toimii viikoittain joka maanantai klo 3.00 ja luo viikoittainen hakemisto kohtaan /backup. vahva> hakemisto.
  4. Suoritetaan joka kuukausi klo 2.30 ja luo kuukausittainen hakemisto /backup-hakemistoon.

Ymmärtääksesi paremmin, miten cron-säännöt toimivat, suosittelen, että luet tämän artikkelin.

  1. 11 Cron-aikataulutusesimerkkejä

Vaihe 7: Rsnapshot-raportit

rsnapshot tarjoaa hienon pienen raportoivan Perl-komentosarjan, joka lähettää sinulle sähköpostihälytyksen, jossa on kaikki tiedot siitä, mitä tietojen varmuuskopioinnin aikana tapahtui. Tämän skriptin asentamiseksi sinun on kopioitava komentosarja jonnekin kohtaan "/usr/local/bin" ja tehtävä siitä suoritettava.

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

Lisää seuraavaksi parametri "–stats" rsnapshot.conf-tiedostoosi rsyncin pitkiin argumenttiosioon.

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

Muokkaa nyt aiemmin lisättyjä crontab-sääntöjä ja lähetä raportit määritettyyn sähköpostiosoitteeseen kutsumalla rsnapreport.pl-skriptiä.

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 

Kun olet lisännyt yllä olevat merkinnät oikein, saat alla olevan kaltaisen raportin sähköpostiosoitteeseesi.

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

Viitelinkit

  1. rsnapshot-kotisivu

Siinä se nyt, jos asennuksen aikana ilmenee ongelmia, jätä minulle kommentti. Pysy siihen asti kuulolla TecMintissä, niin saat mielenkiintoisia artikkeleita avoimen lähdekoodin maailmasta.