Rsnapshot (Rsync Based) - Paikallinen/etätiedostojärjestelmän varmuuskopiointityökalu Linuxille


rsnapshot on avoimen lähdekoodin paikallinen/etätiedostojärjestelmän varmuuskopiointityökalu, joka on kirjoitettu Perl-kielellä, joka hyödyntää Rsync- ja SSH-ohjelmien voimaa luoda Linuxin/Unix-tiedostojärjestelmien ajoitettuja asteittaisia varmuuskopioita ja vie vain yhden täydellisen varmuuskopion ja eroja. ja pidä nämä varmuuskopiot paikallisessa asemassa eri kiintolevyllä, ulkoisella USB-tikulla, NFS-asemalla tai yksinkertaisesti verkon kautta toiselle koneelle SSH: n kautta.

Tässä artikkelissa kerrotaan, miten rsnapshot asennetaan, asennetaan ja käytetään paikallisten, päivittäisten, viikoittaisten ja kuukausittaisten varmuuskopioiden sekä etävarmuuskopioiden luomiseen. Jotta voit suorittaa kaikki tämän artikkelin vaiheet, sinun on oltava pääkäyttäjä.

Vaihe 1: Asenna Rsnapshot Backup Linuxiin

Rsnapshotin asennus Yumilla ja APT: llä voi poiketa hieman, jos käytät Red Hat- ja Debian-pohjaisia jakeluja.

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

  1. Asenna ja ota käyttöön EPEL-arkisto RHEL/CentOS 6/5/4: ssä

Kun olet asentanut asiat, asenna rsnapshot komentoriviltä kuvan osoittamalla tavalla.

# yum install rsnapshot

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-salasanattoman kirjautumisen määrittäminen

Varmuuskopioidaksesi Linux-etäpalvelimia rsnapshot-varmuuskopiointipalvelimesi voi muodostaa yhteyden SSH: n kautta ilman salasanaa. Tämän saavuttamiseksi sinun on luotava SSH: n julkinen ja yksityinen avain todennettavaksi rsnapshot-palvelimelle. Seuraa alla olevaa linkkiä luodaksesi julkiset ja yksityiset avaimet rsnapshot-varmuuskopiointipalvelimellesi.

  1. Luo SSH-salasanaton kirjautuminen SSH Keygen -ominaisuudella

Vaihe 3: Rsnapshotin määrittäminen

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 varmuuskopiot. Minun tapauksessani varmuuskopiohakemiston sijainti on "/ data/backup /". Määritä varmuuskopion sijainti etsimällä ja muokkaamalla seuraavaa parametria.

snapshot_root			 /data/backup/

Kommentoi myös "cmd_ssh" -riviä, jotta etävarmuuskopiot voidaan ottaa SSH: n kautta. Jos haluat poistaa rivin kommentin, poista seuraavan rivin "#", jotta rsnapshot voi siirtää tietosi turvallisesti varmuuskopiointipalvelimelle.

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ät säilytettävät välit ja kuinka moni niistä.

No, oletusasetukset ovat riittävän hyvät, mutta silti haluaisin, että otat "kuukausittaisen" aikavälin käyttöön, jotta sinulla voi olla myös pidemmän aikavälin varmuuskopioita. 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 muokattava asia on muuttuja “ssh_args”. Jos olet vaihtanut SSH-oletusportin (22) joksikin muuksi, sinun on määritettävä kauko-varmuuskopiointipalvelimen porttinumero.

ssh_args		-p 7851

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

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

backup		/tecmint/		localhost/
backup		/etc/			localhost/

Jos haluat varmuuskopioida etäpalvelinhakemistot, sinun on kerrottava rsnapshotille, missä palvelin on ja mitkä hakemistot haluat varmuuskopioida. Otan varmuuskopion etäpalvelimestani "/ home" -hakemistosta rsnapshot-palvelimen hakemistossa "/ data/backup".

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

Aion sulkea pois kaiken ja määritellä sitten vain tarkalleen, mitä haluan varmuuskopioida. Tätä varten sinun on luotava poissulkemistiedosto.

# vi /data/backup/tecmint.exclude

Hanki ensin luettelo hakemistoista, jotka haluat varmuuskopioida, ja lisää (- *) sulkemaan pois kaikki muu. Tämä varmuuskopioi vain tiedostossa luetellun. Poissulkemistiedostoni näyttää olevan samanlainen kuin alla.

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

Poista tiedosto -vaihtoehdon käyttäminen voi olla erittäin hankalaa johtuen rsync-rekursiosta. Joten yllä oleva esimerkkini ei ehkä ole mitä etsit. Lisää seuraavaksi poissulkeva tiedosto rsnapshot.conf-tiedostoon.

exclude_file    /data/backup/tecmint.exclude

Lopuksi, olet melkein valmis alkuperäiseen kokoonpanoon. Tallenna määritystiedosto ”/etc/rsnapshot.conf” ennen siirtymistä eteenpäin. Voit selittää monia vaihtoehtoja, mutta tässä on esimerkki kokoonpanotiedostostani.

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 = Varmuuskopiointikohta tilannekuvien tallentamiseen
  3. cmd_cp = Polku kopioimiseen -komento
  4. cmd_rm = Polku komennon poistamiseen
  5. cmd_rsync = Polku rsynkronointiin
  6. cmd_ssh = Polku SSH: lle
  7. cmd_logger = Polku kuoren komentorajapintaan syslogiin
  8. cmd_du = Polku levyn käyttöön -komento
  9. interval hourly = Kuinka monta tunnin varmuuskopiota säilytetään.
  10. intervalli päivittäin = Kuinka monta päivittäistä varmuuskopiota säilytetään.
  11. intervalliviikko viikoittain = Kuinka monta viikoittaista varmuuskopiota säilytetään.
  12. intervalli kuukausittain = Kuinka monta kuukausittaista varmuuskopiota säilytetään.
  13. ssh_args = Valinnaiset SSH-argumentit, kuten eri portti (-p)
  14. verbose = itsestään selittävä
  15. loglevel = Itsestään selittävä
  16. lokitiedosto = Polku lokitiedostoon
  17. exclusive_file = Polku poissulkemistiedostoon (selitetään tarkemmin)
  18. rsync_long_args = Pitkät argumentit välitettäväksi rsyncille
  19. lockfile = Itsestään selittävä
  20. varmuuskopio = Täysi polku varmuuskopioitavaan ja sen jälkeen suhteellinen sijoituspolku.

Vaihe 4: Tarkista Rsnapshot-kokoonpano

Kun olet määrittänyt kaikki määritykset, on aika tarkistaa, että kaikki toimii odotetulla tavalla. Suorita seuraava komento varmistaaksesi, että kokoonpanossasi on oikea syntakse.

# rsnapshot configtest

Syntax OK

Jos kaikki on määritetty oikein, saat "Syntaksi OK" -viestin. Jos saat virheilmoituksia, se tarkoittaa, että sinun on korjattava nämä virheet ennen rsnapshotin suorittamista.

Suorita sitten testiajo yhdellä tilannekuvalla varmistaaksesi, että tuotamme oikeat tulokset. Otamme “tunneittain” -parametrin testiajon suorittamiseksi -t (test) -argumentilla. Tämä alla oleva komento näyttää yksityiskohtaisen luettelon asioista, joita se tekee, tosiasiallisesti tekemättä niitä.

# rsnapshot -t hourly
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 rsnapshotia luomaan "tunneittain" varmuuskopion. Se todella tulostaa komennot, jotka se suorittaa, kun suoritamme sen todella.

Vaihe 5: Rsnapshotin suorittaminen manuaalisesti

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

# rsnapshot hourly

Yllä oleva komento suorittaa varmuuskopion komentosarjan kaikilla kokoonpanoilla, jotka olemme lisänneet rsnapshot.conf-tiedostoon, ja luo "varmuuskopio" -hakemiston ja luo sen alle hakemistorakenteen, joka järjestää tiedostomme. Kun olet suorittanut yllä olevan komennon, voit tarkistaa tulokset siirtymällä varmuuskopiohakemistoon ja luetteloiden hakemistorakenteen käyttämällä komentoa ls -1 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 mukana tulee cron-tiedosto kohdassa "/etc/cron.d/rsnapshot", jos sitä ei ole olemassa, luo sellainen ja lisää siihen seuraavat rivit.

Sääntöjä kommentoidaan oletusarvoisesti, joten sinun on poistettava "#" aikataulutusosan edestä näiden arvojen ottamiseksi 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

Haluan selittää tarkalleen, mitä yllä olevat cron-säännöt tekevät:

  1. Suoritetaan 4 tunnin välein ja luo tuntihakemiston/varmuuskopiohakemiston alle.
  2. Suoritetaan päivittäin klo 3.30 ja luo päivittäinen hakemisto hakemistoon/varmuuskopio
  3. Suoritetaan viikoittain joka maanantai klo 3.00 ja luo viikoittainen hakemisto/varmuuskopiohakemistoon.
  4. Suoritetaan kuukausittain klo 2.30 ja luo kuukausihakemisto/varmuuskopiohakemistoon.

Jotta voisit ymmärtää paremmin, kuinka cron-säännöt toimivat, suosittelen, että luet artikkelimme, joka kuvaa.

  1. 11 esimerkkiä pitkäaikaisista aikatauluista

Vaihe 7: Rsnapshot-raportit

Rsnapshot tarjoaa hienon pienen raportoivan Perl-komentosarjan, joka lähettää sinulle sähköposti-ilmoituksen, jossa on kaikki tiedot varmuuskopioinnin aikana tapahtuneista. Tämän komentosarjan määrittämiseksi 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 “–stats” -parametri ”rsnapshot.conf” -tiedostoon rsyncin pitkien argumenttien osioon.

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

Muokkaa nyt aiemmin lisättyjä crontab-sääntöjä ja kutsu rsnapreport.pl-komentosarjaa välittämään raportit määritettyyn sähköpostiosoitteeseen.

# 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 raportin sähköpostiosoitteeseesi, joka on samanlainen kuin alla.

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

Se on nyt, jos asennuksen aikana ilmenee ongelmia, jätä minulle kommentti. Till sitten pysy kuulolla TecMintillä saadaksesi mielenkiintoisempia artikkeleita avoimen lähdekoodin maailmasta.