Ero sivun ”Varmuuskopiointi” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(Johdatusta laajennettu huomattavasti, vanhaa tekstiä muutettu)
p (typo)
 
(28 välissä olevaa versiota 15 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
{{Yhteistyö}}
Ilman säännöllistä varmuuskopiointia on vain ajan kysymys, milloin menettää tietokoneella säilyttämiään tiedostoja. Ne voivat hävitä esimerkiksi levyrikon, haittaohjelman, huolimattoman päivityksen, muun erehdyksen tai tulipalon seurauksena. Varmuuskopiointi ei kuitenkaan ole vaikeaa.
Ilman säännöllistä varmuuskopiointia on vain ajan kysymys, milloin menettää tietokoneella säilyttämiään tiedostoja. Ne voivat hävitä esimerkiksi levyrikon, haittaohjelman, huolimattoman päivityksen, muun erehdyksen tai tulipalon seurauksena. Varmuuskopiointi ei kuitenkaan ole vaikeaa.


== Mitä kopioida ==
== Mitä kopioida ==
* kotihakemistot (<tt>/home</tt>)
* kotihakemistot (<tt>/home</tt>, mahdollisesti <tt>/root</tt>)
* mahdolliset muut käyttäjien tiedostot (<tt>/valokuvat</tt> tms.)
* mahdolliset muut käyttäjien tiedostot (<tt>/valokuvat</tt> tms.)
* sähköpostikansiot (kotihakemistossa tai palvelimen omissa hakemistoissa)
* sähköpostikansiot (<tt>/var/mail</tt>,  <tt>/var/spool/mail</tt> tms. sekä käyttäjien kotihakemistoissa; eri palvelimilla voi myös olla omia hakemistojaan)
* mahdolliset muut palvelinten hakemistoissa olevat tiedostot (<tt>/srv/www</tt> yms.)
* mahdolliset muut palvelinten hakemistoissa olevat tiedostot (<tt>/srv/www</tt> yms.)
* järjestelmän asetukset (<tt>/etc</tt>)
* järjestelmän [[asetustiedostot|asetukset]] (<tt>/etc</tt>)
* pakettitietokanta (<tt>/var/lib/dpkg</tt> tms.)
* kiintolevyn [[MBR]] sekä tieto loogisten osioiden sijainnista levyllä
* pakettitietokanta (<tt>/var/lib/dpkg</tt>, <tt>dpkg --get-selections</tt> tms.)
* mahdollisesti muita ohjelmistojen muuttuvia tiedostoja (<tt>/var/lib</tt>, <tt>/var/spool</tt> yms.; <tt>/var/cache</tt> sisältää tiedostoja, joiden sisällön ohjelma itse osaa luoda uudestaan, <tt>/tmp</tt> ja /var/tmp sisältävät väliaikaistiedostoja)
* itse tehdyt skriptit ja itse käännetyt ohjelmat tai ainakin niihin tehdyt muutokset (<tt>/usr/local</tt> yms.)
* itse tehdyt skriptit ja itse käännetyt ohjelmat tai ainakin niihin tehdyt muutokset (<tt>/usr/local</tt> yms.)
* varmuuskopioinnin järjestelyihin liittyvää tietoa, esimerkiksi listaa kopioiduista tiedostoista
* varmuuskopioinnin järjestelyihin liittyvää tietoa, esimerkiksi listaa kopioiduista tiedostoista päivämäärineen, varmuuskopiointiskriptit


Lisäksi pitää olla jokin tapa saada järjestelmä pystyyn mahdollisen levyrikon jälkeen. Oman jakelun asennusmedia saattaa olla sopiva. Jos varmuuskopiointiin käyttää jotakin hiukankin epätavallisempaa ohjelmaa tai tiedostomuotoa, ohjelma ja sen asetukset pitää olla tallessa sellaisessa muodossa, että varmuuskopiot saa palautettua.
Lisäksi pitää olla jokin tapa saada järjestelmä pystyyn mahdollisen levyrikon jälkeen. Oman jakelun asennusmedia saattaa olla sopiva. Jos varmuuskopiointiin käyttää jotakin hiukankin epätavallisempaa ohjelmaa tai tiedostomuotoa, ohjelma ja sen asetukset pitää olla tallessa sellaisessa muodossa, että varmuuskopiot saa palautettua.


Eri tiedostot kaipavat kopiointia eri väliajoin: valokuvista riittää, kun niistä on muutama kopio, nehän eivät yleensä muutu. Asetustiedostot pitää kopioida ainakin suuremman päivityksen yhteydessä. Kotihakemistot ja sähköpostit pitää kopioida usein. Vain muuttuneiden tiedostojen kopioiminen on helppoa, mutta kauan muuttumatta ollut tiedosto pitää kuitenkin voida palauttaa kohtuullisen tuoreesta kopiosta.
Eri tiedostot kaipaavat kopiointia eri väliajoin: valokuvista riittää, kun niistä on muutama kopio, nehän eivät yleensä muutu. Asetustiedostot pitää kopioida ainakin suuremman päivityksen yhteydessä. Kotihakemistot ja sähköpostit pitää kopioida usein. Vain muuttuneiden tiedostojen kopioiminen on helppoa, mutta kauan muuttumatta ollut tiedosto pitää kuitenkin voida palauttaa kohtuullisen tuoreesta kopiosta.


== Milloin ja mihin ==
== Milloin ja mihin ==
Tilastollisesti tiedostoja tuhoutuu eniten käyttäjän virheiden, haittaohjelmien ja ohjelmavirheiden takia. Tiedoston rikkoontumista ei välttämättä huomaa heti, joten osa vanhoista varmuuskopioista kannattaa säilyttää. Tavallista on säilyttää päivittäiset kopiot jonkin aikaa ja välillä otettu koko järjestelmän varmuuskopio "ikuisesti".
Tilastollisesti tiedostoja tuhoutuu eniten käyttäjän virheiden, haittaohjelmien ja ohjelmavirheiden takia. Tiedoston rikkoontumista ei välttämättä huomaa heti, joten osa vanhoista varmuuskopioista kannattaa säilyttää. Tavallista on säilyttää päivittäiset kopiot jonkin aikaa ja välillä otettu koko järjestelmän varmuuskopio "ikuisesti".


Tärkeistä tieostoista kannattaa ottaa kopioita työn kuluessa, aina välillä ja aina ennen ja jälkeen suuremman muutoksen tekemistä. Tähän riittänee tallentaminen eri nimellä, mutta versionhallintajärjestelmääkin voi käyttää.
Jos haluaa pelata varman päälle, kannattaa valmiin asennuksen jälkeen ottaa järjestelmästä levykuva esimerkiksi [[Partimage]] ohjelmalla DVD-levyille tai ulkoiselle kiintolevylle. Tällöin kiintolevy rikkoutuessa tietokoneen voi palauttaa nopeasti täsmälleen siihen tilaan kuin se oli asennettaessa.  


Päivittäinen varmuuskopiointi on hyvä tehdä automatisoidusti ([[cron]]+[[anacron]]), jottei se unohdu, mielellään vähintään toiselle kovalevylle. Kovalevyjen rikkoontumiset ovat tavallinen syy tietojen menettämiselle.[[RAID]]-[[RAID#1-taso|peilaus]] auttaa yhden levyn rikkoontuessa.
Tärkeistä tiedostoista kannattaa ottaa kopioita työn kuluessa, aina välillä ja aina ennen ja jälkeen suuremman muutoksen tekemistä. Tähän riittänee tallentaminen eri nimellä, mutta versionhallintajärjestelmääkin voi käyttää.
Toiselle koneelle kopioiminen suojaa jonkin verran myös haittaohjelmilta, ohjelmavirheiltä ja käyttäjävirheiltä, [[CD-levy|CD-levylle]] tai DVD:lle kopioiminen vielä paremmin (mutta levynpolton automatisointi on hankalaa).
 
Päivittäinen muuttuneiden tiedostojen varmuuskopiointi on hyvä tehdä automatisoidusti ([[cron]]+[[anacron]]), jottei se unohdu, mielellään vähintään toiselle kiintolevylle. Kiintolevyjen rikkoontumiset ovat tavallinen syy tietojen menettämiselle. [[RAID]]-[[RAID#1-taso|peilaus]] auttaa yhden levyn rikkoontuessa.
Toiselle koneelle kopioiminen suojaa jonkin verran myös haittaohjelmilta, ohjelmavirheiltä ja käyttäjävirheiltä, [[levyn polttaminen|CD-levylle]] tai DVD:lle kopioiminen vielä paremmin (mutta levynpolton automatisointi on hankalaa).
 
Välillä pitää tehdä varmuuskopio kaikista kopioitavista tiedostoista, jota käytetään pohjana järjestelmän palautuksessa levyrikon jäljiltä. Uudelle kiintolevylle asennetaan ensin perusjärjestelmä, sitten pakettitietokannan varmuuskopioitujen tietojen perusteella ennenkin asennettuina olleet ohjelmat (mukaan lukien käytetty varmuuskopiointiohjelma), sitten viimeinen täysi varmuuskopio ja viimeisenä sen jälkeen muuttuneet tiedostot. Operaation toimivuutta olisi hyvä joskus kokeilla vaihtamalla tietokoneeseen tyhjä kiintolevy käytetyn kiintolevyn sijaan ja palauttamalla järjestelmä sille. Myös yksittäisen tiedoston tietyn version palauttamista on hyvä kokeilla.


Ainakin välillä varmuuskopio olisi hyvä saada turvaan toiseen rakennukseen (tulipalojen, tulvien, salaman aiheuttamien laiterikkojen yms. varalta).
Ainakin välillä varmuuskopio olisi hyvä saada turvaan toiseen rakennukseen (tulipalojen, tulvien, salaman aiheuttamien laiterikkojen yms. varalta).


On hyvä käyttää varmuuskopiointiin useampaa tekniikkaa. Internetin kautta on helppoa siirtää varmuuskopio ystävän tai palveluntarjoajan kiintolevylle, jossa se on turvassa omaa taloa kohdanneesta onnettomuudesta, mutta helposti hävitettävissä inhimmillisen erehdyksen myötä. DVD saattaa muuttua ajan myötä lukukelvottomaksi, mutta kirjahyllyssä se on haittaohjelmilta turvassa.  
On hyvä käyttää varmuuskopiointiin useampaa tekniikkaa. Internetin kautta on helppoa siirtää varmuuskopio ystävän tai palveluntarjoajan kiintolevylle, jossa se on turvassa omaa taloa kohdanneesta onnettomuudesta, mutta helposti hävitettävissä inhimillisen erehdyksen myötä. DVD saattaa muuttua ajan myötä lukukelvottomaksi, mutta kirjahyllyssä se on haittaohjelmilta turvassa.
 
== Työkalut ==
Hyviä työkaluja tiedostojen varmuuskopiointiin kahden eri koneen välillä ovat mm. [[Rsync]] ja [[Unison]]. Perinteisiä varmuuskopiointiin soveltuvia työkaluja ovat mm. [[tar]], [[dump]] ja [[cpio]], joiden käyttöön varmuuskopiointiin on ohjeita ja esimerkkiskriptejä. Näistä ohjeista voi saada vinkkejä, vaikkei kyseistä ohjelmaa käyttäisikään.


Hyviä työkaluja tiedostojen varmuuskopiointiin kahden eri koneen välillä ovat mm. [[Rsync]] ja [[Unison]]. Perinteisiä varmuuskopiointiin soveltuvia työkaluja ovat mm. tar, dump ja cpio. Eri tarpeisiin tehtyjä varmuuskopiointiohjelmistoja on runsasti.
Yleensä varmuuskopiot on otettu nauhalle, mutta ohjelmat voivat hyvin tehdä arkistonsa muuallekin. Nykyisillä isoilla kiintolevyillä tärkeiden tiedostojen kopio yleensä mahtuu levylle, josta sen voi siirtää muualle tarpeen mukaan,  


Varmuuskopiointiohjelmia ja tiedostomuotoja valittaessa on hyvä muistaa, että kopion pitää olla palautettavissakin. Onko tiedostomuoto sellainen, että sen saa palautettua vielä kymmenen vuoden kuluttua siitä, kun ohjelman tekijä lopetti ohjelman ylläpidon? Entä miten hyvin tiedostot saa palautettua [[bittirutto|bittiruton]] jäljiltä.  
Eri tarpeisiin tehtyjä erityisiä varmuuskopiointiohjelmistoja on runsasti.
Varmuuskopiointiohjelmia ja tiedostomuotoja valittaessa on hyvä muistaa, että kopion pitää olla palautettavissakin. Onko tiedostomuoto sellainen, että sen saa palautettua vielä kymmenen vuoden kuluttua siitä, kun ohjelman tekijä lopetti ohjelman ylläpidon? Entä miten hyvin tiedostot saa palautettua [[bittirutto|bittiruton]] jäljiltä? Viimeksimainittu on ongelma erityisesti, jos arkisto pakataan tai salataan.


== Rsync ==
== Rsync ==
Rivi 36: 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
# Jos varmuuskopioitavien tiedostojen joukossa on paljon suuria tiedostoja, jotka eivät juuri koskaan muutu tai muuttuvat kerralla vain jostakin kohtaa
# Haluaa minimoida varmuuskopiointiin / tiedostojen siirtoon käytetyn ajan ja kaistan
# Haluaa minimoida varmuuskopiointiin / tiedostojen siirtoon käytetyn ajan ja kaistan


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.
=== Kotihakemiston kopiointi 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/


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]].
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.
 
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 ===
 
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/
 
== 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]]-ohjelma on hyväksi havaittu ratkaisu ainakin ns. hard link -varmuuskopioiden tekemiseen rsyncin avulla paikalliselle levylle hieman helpommin kuin suoraan rsynciä käyttämällä. Näin saadaan käyttöön useita täydellisiä varmuuskopioita siten, että muuttumattomat tiedostot haetaan edellisistä varmuuskopioista eikä niitä tallenneta jokaisella kerralla uudelleen, mikä säästää levytilaa.


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.
Rsnapshotin käyttöönotto on melko yksinkertaista, jos on kokemusta tekstimuotoisten asetustiedostojen muokkaamisesta ja komentojen ajamisesta komentoriviltä. Rsnapshotin voi asettaa toimimaan [[cron]]ista tai komentoriviltä tarvittaessa.


== Katso myös ==
== Katso myös ==
*[[USB-varmuuskopio]]
*[[USB-varmuuskopio]]
*[[Varmuuskopiointiselvitys]] - varmuuskopiointi- ja palautustyökalut
*[[BackZoup]]
*[[Juurihakemiston siirtäminen]]
*[[rdiff-backup]]
*[[Pilvipalvelut]]


[[Luokka:Järjestelmä]]
[[Luokka:Järjestelmä]]
[[Luokka:Ohjeet]]
[[Luokka:Ohjeet]]
[[Luokka:Tietoturva]]
{{Varmuuskopiointi}}

Nykyinen versio 11. marraskuuta 2019 kello 10.44

Ilman säännöllistä varmuuskopiointia on vain ajan kysymys, milloin menettää tietokoneella säilyttämiään tiedostoja. Ne voivat hävitä esimerkiksi levyrikon, haittaohjelman, huolimattoman päivityksen, muun erehdyksen tai tulipalon seurauksena. Varmuuskopiointi ei kuitenkaan ole vaikeaa.

Mitä kopioida[muokkaa]

  • kotihakemistot (/home, mahdollisesti /root)
  • mahdolliset muut käyttäjien tiedostot (/valokuvat tms.)
  • sähköpostikansiot (/var/mail, /var/spool/mail tms. sekä käyttäjien kotihakemistoissa; eri palvelimilla voi myös olla omia hakemistojaan)
  • mahdolliset muut palvelinten hakemistoissa olevat tiedostot (/srv/www yms.)
  • järjestelmän asetukset (/etc)
  • kiintolevyn MBR sekä tieto loogisten osioiden sijainnista levyllä
  • pakettitietokanta (/var/lib/dpkg, dpkg --get-selections tms.)
  • mahdollisesti muita ohjelmistojen muuttuvia tiedostoja (/var/lib, /var/spool yms.; /var/cache sisältää tiedostoja, joiden sisällön ohjelma itse osaa luoda uudestaan, /tmp ja /var/tmp sisältävät väliaikaistiedostoja)
  • itse tehdyt skriptit ja itse käännetyt ohjelmat tai ainakin niihin tehdyt muutokset (/usr/local yms.)
  • varmuuskopioinnin järjestelyihin liittyvää tietoa, esimerkiksi listaa kopioiduista tiedostoista päivämäärineen, varmuuskopiointiskriptit

Lisäksi pitää olla jokin tapa saada järjestelmä pystyyn mahdollisen levyrikon jälkeen. Oman jakelun asennusmedia saattaa olla sopiva. Jos varmuuskopiointiin käyttää jotakin hiukankin epätavallisempaa ohjelmaa tai tiedostomuotoa, ohjelma ja sen asetukset pitää olla tallessa sellaisessa muodossa, että varmuuskopiot saa palautettua.

Eri tiedostot kaipaavat kopiointia eri väliajoin: valokuvista riittää, kun niistä on muutama kopio, nehän eivät yleensä muutu. Asetustiedostot pitää kopioida ainakin suuremman päivityksen yhteydessä. Kotihakemistot ja sähköpostit pitää kopioida usein. Vain muuttuneiden tiedostojen kopioiminen on helppoa, mutta kauan muuttumatta ollut tiedosto pitää kuitenkin voida palauttaa kohtuullisen tuoreesta kopiosta.

Milloin ja mihin[muokkaa]

Tilastollisesti tiedostoja tuhoutuu eniten käyttäjän virheiden, haittaohjelmien ja ohjelmavirheiden takia. Tiedoston rikkoontumista ei välttämättä huomaa heti, joten osa vanhoista varmuuskopioista kannattaa säilyttää. Tavallista on säilyttää päivittäiset kopiot jonkin aikaa ja välillä otettu koko järjestelmän varmuuskopio "ikuisesti".

Jos haluaa pelata varman päälle, kannattaa valmiin asennuksen jälkeen ottaa järjestelmästä levykuva esimerkiksi Partimage ohjelmalla DVD-levyille tai ulkoiselle kiintolevylle. Tällöin kiintolevy rikkoutuessa tietokoneen voi palauttaa nopeasti täsmälleen siihen tilaan kuin se oli asennettaessa.

Tärkeistä tiedostoista kannattaa ottaa kopioita työn kuluessa, aina välillä ja aina ennen ja jälkeen suuremman muutoksen tekemistä. Tähän riittänee tallentaminen eri nimellä, mutta versionhallintajärjestelmääkin voi käyttää.

Päivittäinen muuttuneiden tiedostojen varmuuskopiointi on hyvä tehdä automatisoidusti (cron+anacron), jottei se unohdu, mielellään vähintään toiselle kiintolevylle. Kiintolevyjen rikkoontumiset ovat tavallinen syy tietojen menettämiselle. RAID-peilaus auttaa yhden levyn rikkoontuessa. Toiselle koneelle kopioiminen suojaa jonkin verran myös haittaohjelmilta, ohjelmavirheiltä ja käyttäjävirheiltä, CD-levylle tai DVD:lle kopioiminen vielä paremmin (mutta levynpolton automatisointi on hankalaa).

Välillä pitää tehdä varmuuskopio kaikista kopioitavista tiedostoista, jota käytetään pohjana järjestelmän palautuksessa levyrikon jäljiltä. Uudelle kiintolevylle asennetaan ensin perusjärjestelmä, sitten pakettitietokannan varmuuskopioitujen tietojen perusteella ennenkin asennettuina olleet ohjelmat (mukaan lukien käytetty varmuuskopiointiohjelma), sitten viimeinen täysi varmuuskopio ja viimeisenä sen jälkeen muuttuneet tiedostot. Operaation toimivuutta olisi hyvä joskus kokeilla vaihtamalla tietokoneeseen tyhjä kiintolevy käytetyn kiintolevyn sijaan ja palauttamalla järjestelmä sille. Myös yksittäisen tiedoston tietyn version palauttamista on hyvä kokeilla.

Ainakin välillä varmuuskopio olisi hyvä saada turvaan toiseen rakennukseen (tulipalojen, tulvien, salaman aiheuttamien laiterikkojen yms. varalta).

On hyvä käyttää varmuuskopiointiin useampaa tekniikkaa. Internetin kautta on helppoa siirtää varmuuskopio ystävän tai palveluntarjoajan kiintolevylle, jossa se on turvassa omaa taloa kohdanneesta onnettomuudesta, mutta helposti hävitettävissä inhimillisen erehdyksen myötä. DVD saattaa muuttua ajan myötä lukukelvottomaksi, mutta kirjahyllyssä se on haittaohjelmilta turvassa.

Työkalut[muokkaa]

Hyviä työkaluja tiedostojen varmuuskopiointiin kahden eri koneen välillä ovat mm. Rsync ja Unison. Perinteisiä varmuuskopiointiin soveltuvia työkaluja ovat mm. tar, dump ja cpio, joiden käyttöön varmuuskopiointiin on ohjeita ja esimerkkiskriptejä. Näistä ohjeista voi saada vinkkejä, vaikkei kyseistä ohjelmaa käyttäisikään.

Yleensä varmuuskopiot on otettu nauhalle, mutta ohjelmat voivat hyvin tehdä arkistonsa muuallekin. Nykyisillä isoilla kiintolevyillä tärkeiden tiedostojen kopio yleensä mahtuu levylle, josta sen voi siirtää muualle tarpeen mukaan,

Eri tarpeisiin tehtyjä erityisiä varmuuskopiointiohjelmistoja on runsasti. Varmuuskopiointiohjelmia ja tiedostomuotoja valittaessa on hyvä muistaa, että kopion pitää olla palautettavissakin. Onko tiedostomuoto sellainen, että sen saa palautettua vielä kymmenen vuoden kuluttua siitä, kun ohjelman tekijä lopetti ohjelman ylläpidon? Entä miten hyvin tiedostot saa palautettua bittiruton jäljiltä? Viimeksimainittu on ongelma erityisesti, jos arkisto pakataan tai salataan.

Rsync[muokkaa]

Rsync on hyvä ratkaisu varmuuskopiointiin, jos:

  1. Haluaa varmuuskopioida toiselle koneelle verkon yli
  2. Varmuuskopioitavia tiedostoja on paljon, mutta vain harvat niistä muuttuvat päivittäin
  3. Jos varmuuskopioitavien tiedostojen joukossa on paljon suuria tiedostoja, jotka eivät juuri koskaan muutu tai muuttuvat kerralla vain jostakin kohtaa
  4. Haluaa minimoida varmuuskopiointiin / tiedostojen siirtoon käytetyn ajan ja kaistan

Kotihakemiston kopiointi toiselle koneelle[muokkaa]

Allaoleva komento kopioi ssh:n yli 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 a tarkoittaa arkistoa eli tiedostot säilytetään mahdollisimman samanlaisina, v "verbose" eli rsync kertoo mitä tekee, ja z 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/

Jotta varmuuskopiointi jatkossa sujuisi automaattisesti, salasanoja kysymättä, tarkoitukseen on luotava salasanaton ssh-avainpari, lisättävä se kohdekoneen käyttäjätunnuksen luotettujen avainten tiedostoon ja muutettava komentoa niin, että avainta käytetään.

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 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 – ja hakemistot /proc, /sys ja /tmp kannattaa jättää kopioimatta.

Paikallinen kopio[muokkaa]

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/

Kokokopiot ja varmuuskopioiden siivoaminen[muokkaa]

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 /home/tunnus2/backup_päiväys, 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[muokkaa]

rsnapshot-ohjelma on hyväksi havaittu ratkaisu ainakin ns. hard link -varmuuskopioiden tekemiseen rsyncin avulla paikalliselle levylle hieman helpommin kuin suoraan rsynciä käyttämällä. Näin saadaan käyttöön useita täydellisiä varmuuskopioita siten, että muuttumattomat tiedostot haetaan edellisistä varmuuskopioista eikä niitä tallenneta jokaisella kerralla uudelleen, mikä säästää levytilaa.

Rsnapshotin käyttöönotto on melko yksinkertaista, jos on kokemusta tekstimuotoisten asetustiedostojen muokkaamisesta ja komentojen ajamisesta komentoriviltä. Rsnapshotin voi asettaa toimimaan cronista tai komentoriviltä tarvittaessa.

Katso myös[muokkaa]

v  k  m
Varmuuskopiointi ja palautustyökalut
 Varmuuskopiointi  Back in Time | backup2l | backuppc | Bacula | Déjá Dup | dirvish | duplicity | dvdisaster | Flyback | Keep | luckyBackup | Mondo Rescue | Partimage | Pybackpack | rdiff-backup | rsnapshot | Sbackup | SystemRescue | Unison
 Palautustyökalut  Clonezilla | Ddrescue | PhotoRec