Muokataan sivua Varmuuskopiointi

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 45: Rivi 45:
# Haluaa varmuuskopioida toiselle koneelle verkon yli
# Haluaa varmuuskopioida toiselle koneelle verkon yli
# Varmuuskopioitavia tiedostoja on paljon, mutta vain harvat niistä muuttuvat päivittäin
# Varmuuskopioitavia tiedostoja on paljon, mutta vain harvat niistä muuttuvat päivittäin
# Jos varmuuskopioitavien tiedostojen joukossa on paljon suuria tiedostoja, jotka eivät juuri koskaan muutu tai muuttuvat kerralla vain jostakin kohtaa
# Jos varmuuskopioitavien tiedostojen joukossa on paljon suuria tiedostoja, jotka eivät juuri koskaan muutu
# Haluaa minimoida varmuuskopiointiin / tiedostojen siirtoon käytetyn ajan ja kaistan
# Haluaa minimoida varmuuskopiointiin / tiedostojen siirtoon käytetyn ajan ja kaistan


=== Kotihakemiston kopiointi toiselle koneelle ===
Tämä komento kopioi [[SSH|ssh:n]] yli /home/tunnus/ [[Linuxin hakemistorakenne|kansion]] sisällön koneella, jonka ip on 192.168.0.1, sijaitsevaan /home/tunnus2/backup/-hakemistoon. rsync kirjautuu sisään tunnus2:n tunnuksilla toiselle koneelle.
 
Allaoleva komento kopioi [[SSH|ssh:n]] yli [[Linuxin hakemistorakenne|hakemiston]] /home/tunnus/ sisällön hakemistoon /home/tunnus2/backup/ koneella, jonka ip-osoite on 192.168.0.1, käyttäen [[käyttäjä]]tunnusta "tunnus2". Vipu <code>a</code> tarkoittaa arkistoa eli tiedostot säilytetään mahdollisimman samanlaisina, <code>v</code> "verbose" eli rsync kertoo mitä tekee, ja <code>z</code> pakkaa datan, mitä tosin ssh saattaa tehdä itsekin. Ellet muuten käytä ssh:ta saatat joutua muuttamaan palomuureja, tiedostoa /etc/hosts.allow ja tiedostoa /etc/ssh/sshd_config


  /usr/bin/rsync -avz -e ssh /home/tunnus/ tunnus2@192.168.0.1:/home/tunnus2/backup/
  /usr/bin/rsync -avz -e ssh /home/tunnus/ tunnus2@192.168.0.1:/home/tunnus2/backup/


Jotta varmuuskopiointi jatkossa sujuisi automaattisesti, salasanoja kysymättä, tarkoitukseen on luotava salasanaton [[SSH#Tunnistaminen_avainparilla|ssh-avainpari]], lisättävä se kohdekoneen käyttäjätunnuksen luotettujen avainten tiedostoon ja muutettava komentoa niin, että avainta käytetään.
Ylläolevassa on tosin se vika, että se ei ole täysin automaattinen, vaan se kysyy tunnus2:n salasanaa. Tästä pääsee eroon kun luo [[SSH#Tunnistaminen_avainparilla|SSH:ta varten avainparin]].
 
Alla luodaan avainpari (älä anna salasanaa), siirretään se koneelle "omakone" ja luodaan tiedostoon authorized_keys rivi, jolla sallitaan yhteydenotot tältä koneelta, mutta ei porttien ohjauksia (nämä "optiot" ja välilyönti rivin alkuun, id-tiedostosta kopioidaan avain saman rivin loppuun). Vaihda tarvittaessa nimen "omakone" sijaan ssh:n hyväksymä nimen muoto, riippuen nimipalvelinjärjestelyistä.
 
ssh-keygen -f .ssh/id_rsa-backup
scp .ssh/id_rsa-backup tunnus@omakone:/home/tunnus/.ssh
touch .ssh/authorized_keys
echo -n "from=omakone,no-port-forwarding " >> .ssh/authorized_keys
cat .ssh/id_rsa-backup.pub >> .ssh/authorized_keys
 
Kun nyt scp-komentoon lisätään viittaus avaintiedostoon, salasanaa ei enää kysytä. Tämän automatisoidun komennon voi laittaa skriptitiedostoon ja lisätä viittaus siihen crontabiin (katso [[Komentojen ajastaminen#Säännölliset työt: cron ja anacron|cron]]). Tässä komentoon on myös lisätty vivut tiedostojen vanhojen versioiden säilyttämiseksi, poistettujen tiedostojen poistamiseksi "peilistä" ja joidenkin tilapäistiedostojen jättämiseksi kopioimatta.
 
#!/bin/sh
/usr/bin/rsync -avz -e "ssh -i /home/tunnus/.ssh/id_rsa-backup" \
  -b --backup-dir="/home/tunnus2/backup_`date --rfc-3339=date`" \
  --delete --exclude="*.tmp" --exclude=Cache/ \
  /home/tunnus/ tunnus2@192.168.0.1:/home/tunnus2/backup/
 
Katso, että komento toimii myös näin. Päivittäisen ajon yhteydessä (jos ajo tehdään päivittäin) pitäisi syntyä uusi päivätty hakemisto, joka sisältää ennen tätä ajoa muuttuneiden tai poistuneiden tiedostojen edellinen versio.
Näitä hakemistoja syntyy aika pian turhan paljon. Lisäksi jossakin vaiheessa hävinnyt tiedosto voi olla missä vaan näistä hakemistoista.
 
Tarvitaan siivousta ja kokokopioita, joista järjestelmän voi palauttaa tietyn päivämäärän mukaiseen kuntoon. Katso alla.
 
Koko järjestelmän kopiointi käy muuten samalla tavalla, mutta jollei haluta käyttää root-oikeuksia molemmilla koneilla, joutuu turvautumaan erikoisratkaisuihin &ndash; ja hakemistot /proc, /sys ja /tmp kannattaa jättää kopioimatta.


=== Paikallinen kopio ===
Ylläolevaa voi vielä kehittää paremmaksi tekemällä vastaanottavalle koneelle skriptin joka tekee paketin koko backup kansiosta ja tallentaa sen päivämäärällä varustetulla nimellä ja poistelee automaattisesti vanhimpia paketteja.


Tämä komento kopioi kansion sisällön toiseen paikkaan paikallisessa järjestelmässä, esim. USB-levylle. Etuna tavalliseen kopiointiin on virheensieto, eli esim. suuren kopioinnin katketessa koko hommaa ei tarvitse aloittaa alusta vaan voidaan jatkaa siitä kohtaa, mihin jäätiin. --stats ja --progress näyttävät suorituksen aikana ja lopuksi tietoja etenemisestä.
Tämä komento kopioi kansion sisällön toiseen paikkaan paikallisessa järjestelmässä, esim. USB-levylle. Etuna tavalliseen kopiointiin on virheensieto, eli esim. suuren kopioinnin katketessa koko hommaa ei tarvitse aloittaa alusta vaan voidaan jatkaa siitä kohtaa, mihin jäätiin. --stats ja --progress näyttävät suorituksen aikana ja lopuksi tietoja etenemisestä.


  rsync -ah --stats --progress /kansio/mista/kopioidaan/ /kansio/mihin/kopioidaan/
  rsync -ah --stats --progress /kansio/mista/kopioidaan/ /kansio/mihin/kopioidaan/
== Kokokopiot ja varmuuskopioiden siivoaminen ==
Joskus kone halutaan palauttaa kuntoon, jossa se oli tiettynä ajankohtana, esimerkiksi jos kiintolevy on viottunut ja tiedostoja on rikkoontunut pikku hiljaa pidemmän aikaa tai koneeseen on murtauduttu ja tiedostojen nykyversioihin ei uskalla luottaa. Hävitetty tiedosto on usein myös helpompi palauttaa kokokopiosta ajankohdalta, jolloin tiedoston tiedetään vielä olleen olemassa, kuin yrittää etsiä se tiedoston luonti- tai poistohetken perusteella.
Jos varmuuskopio on varmistettavan datan peilinä, kuten yllä rsync-esimerkeissä, kokokopion ottaminen sujuu yksinkertaisesti kopioimalla tämä hakemisto:
cp -a /home/tunnus2/backup "/arkisto/backup_`date --rfc-3339=date`"
Tämän komennon voi laittaa cron-skriptiin, esimerkiksi kuukausittain suoritettavaksi. Tarvittaessa isoja harvoin muuttuvia tiedostoja voi jättää  pois useimmista varmuuskopioista, helpoiten niin että kuva- ja elokuvakansiot poistetaan varmuuskopiosta ja kyseiset tiedostot varmuuskopioidaan erikseen, pariin paikkaan muutoksen jälkeen ja uudelleen vuoden tai parin välein.
Vastaavasti kokokopio olisi hyvä välillä polttaa DVD:lle tms. Korvaa "cp" yllä sopivalla poltettavan imagen tekokäskyllä ja muistutuksella (vaikka wall-käskyllä tai sähköpostitse) polttaa image levylle.
Päivittäisiä kopioita ei kannattane säästää kuin rajallinen määrä, ehkä parin viikon ajalta, jonka jälkeen tiedostosta on tallella vain uusin sekä mahdollisesti kokokopiolle ehtinyt vanhempi versio. Jos kopiot ovat nimetty tyyliin<code> /home/tunnus2/backup_päiväys</code>, niiden poistaminen sujuu vaikka näin (skriptillä /etc/cron.weekly/siivous tms.)
#!/bin/sh
COMMAND="find -P /home/tunnus2/backup_* -depth -ctime +14 -mtime +14 -rm '{}'"
su -c "$COMMAND" tunnus2


== rsnapshot ==
== rsnapshot ==
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)

Tällä sivulla käytetyt mallineet: