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ä.
- 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.
- 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:
- Hakemistojen varmuuskopiointi/synkronointi Rsync (Remote Sync) -työkalun avulla
- 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:
- config_version 1.2 = Määritystiedoston versio
- snapshot_root = Varmuuskopiointikohta tilannekuvien tallentamiseen
- cmd_cp = Polku kopioimiseen -komento
- cmd_rm = Polku komennon poistamiseen
- cmd_rsync = Polku rsynkronointiin
- cmd_ssh = Polku SSH: lle
- cmd_logger = Polku kuoren komentorajapintaan syslogiin
- cmd_du = Polku levyn käyttöön -komento
- interval hourly = Kuinka monta tunnin varmuuskopiota säilytetään.
- intervalli päivittäin = Kuinka monta päivittäistä varmuuskopiota säilytetään.
- intervalliviikko viikoittain = Kuinka monta viikoittaista varmuuskopiota säilytetään.
- intervalli kuukausittain = Kuinka monta kuukausittaista varmuuskopiota säilytetään.
- ssh_args = Valinnaiset SSH-argumentit, kuten eri portti (-p)
- verbose = itsestään selittävä
- loglevel = Itsestään selittävä
- lokitiedosto = Polku lokitiedostoon
- exclusive_file = Polku poissulkemistiedostoon (selitetään tarkemmin)
- rsync_long_args = Pitkät argumentit välitettäväksi rsyncille
- lockfile = Itsestään selittävä
- 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:
- Suoritetaan 4 tunnin välein ja luo tuntihakemiston/varmuuskopiohakemiston alle.
- Suoritetaan päivittäin klo 3.30 ja luo päivittäinen hakemisto hakemistoon/varmuuskopio
- Suoritetaan viikoittain joka maanantai klo 3.00 ja luo viikoittainen hakemisto/varmuuskopiohakemistoon.
- 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.
- 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
- 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.