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ä.
- 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.
- 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:
- Hakemistojen varmuuskopiointi/synkronointi Rsync (Remote Sync) -työkalun avulla
- 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:
- config_version 1.2=Määritystiedoston versio
- snapshot_root=Varmuuskopion kohde tilannekuvien tallentamiseen
- cmd_cp=Kopiointikomennon polku
- cmd_rm=Polku komennon poistamiseen
- cmd_rsync=Polku rsynciin
- cmd_ssh=SSH-polku
- cmd_logger=Polku shell-komentoliittymään syslogiin
- cmd_du=Levyn käyttöpolku
- tuntiväli=kuinka monta tunnin varmuuskopiota säilytetään.
- väli päivittäin=kuinka monta päivittäistä varmuuskopiota pitää säilyttää.
- viikoittainen aikaväli=kuinka monta viikoittaista varmuuskopiota pitää säilyttää.
- kuukausiväli=kuinka monta kuukausittaista varmuuskopiota pitää säilyttää.
- ssh_args=Valinnaiset SSH-argumentit, kuten eri portti (-p )
- verbose=Itsestään selvä
- loglevel=itsestään selvä
- logfile=Polku lokitiedostoon
- exclude_file=Polku poissulkevaan tiedostoon (selitän tarkemmin)
- rsync_long_args=Pitkät argumentit välitettäväksi rsyncille
- lockfile=Itsestään selvä
- 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:
- Suoritetaan 4 tunnin välein ja luo tuntikohtaisen hakemiston /backup-hakemistoon.
- Toimii päivittäin klo 3.30 ja luo päivittäinen hakemisto /backup-hakemistoon.
- Toimii viikoittain joka maanantai klo 3.00 ja luo viikoittainen hakemisto kohtaan /backup. vahva> hakemisto.
- 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.
- 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
- 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.