Varmuuskopiot

Pääkäyttäjän pitäisi huolehtia tärkeiden tiedostojen tallentamisesta toiselle taltiolle siten, että niiden palautus tarvittaessa on mahdollista. Kun käytettävissä on riittävän iso varmistustaltio, ovat varmuuskopiot yksinkertaisia: kirjoitetaan kaikki taltiolle riittävän usein.

Mikäli ei ole taltiota johon koko levyn sisältö mahtuisi kerralla, kannattaa tutkia miten varmuuskopioitaisiin riittävästi. Esimerkiksi koneeseen asennettuja ohjelmia ei välttämättä kannata varmuuskopioida, voi olla helpompaa asentaa ne uudestaan.

tale@dilbert ~
$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5              99M   37M   57M  39% /
/dev/sda6             964M  157M  757M  18% /var
/dev/sda7             190M  2.0k  180M   1% /export3
/dev/sda8             2.7G  2.3G  347M  87% /export
/dev/sdb1              17G   16G  786M  96% /export2
/dev/sdc2             1.8G  344M  1.4G  19% /tmp
/dev/sdc3             2.0G  1.2G  889M  56% /usr
tale@dilbert ~

Esimerkin palvelinkoneessa on levytila jaettu useisiin levyosioihin, näistä /usr sisältää Debian GNU/Linux -ohjelmat, /tmp ei ehkä mitään varmistamisen väärtiä. /var sisältää lokitiedostot, nämä saattavat olla hyvinkin tärkeitä riippuen koneen käyttötarkoituksesta. Mutta mahdollisesti mitään näistä ei tarvitse varmuuskopioida.

/usr sisältää siis niitä tiedostoja joita on asenneltu rompulta tai netistä, ne saa asennettua uudestaan jos vain muistaa mitä ohjelmapaketteja on asennettu. Tässä helpottaa dpkg --get-selections, joka näyttää koneeseen asennetuista paketeissa asennustilan, siis onko ne merkitty asennettavaksi, poistettavaksi tms.

$ dpkg --get-selections > /tmp/dpkg--get-selections.list
tale@phb ~/Work/Homepage
$ wc -l /tmp/dpkg--get-selections.list 
    947 /tmp/dpkg--get-selections.list
tale@phb ~/Work/Homepage
$ head /tmp/dpkg--get-selections.list 
aalib1						install
abuse						install
abuse-frabs					install
abuse-sdl					install
abuse-sfx					install
acroread					deinstall
addressbook					deinstall
adduser						install
ae						deinstall
an						install
tale@phb ~/Work/Homepage
$ 

Tallettamalla listauksen voi sen avulla merkitä samat ohjelmapaketit asennettaviksi: dpkg --set-selections < dpkg--get-selections.list. Tätä voi käyttää myös jos pitää toiseen koneeseen saada asennettua samat paketit, esimerkiksi haluttaessa samanlaisia koneita. Mikäli massa-asennukset kiinnostavat, tutustumisen arvoinen on fai.

Jos on menetellyt kuten aikaisemmin kehotettiin eli /etc -hakemistossa olevat ohjelmien asetukset sisältävät tiedostot on versioitu /etc/RCS -hakemistossa, riittää tuon hakemiston tallettaminen. Sieltä saa takaisin ne muutokset joita on tehnyt koneen asentamisen jälkeen.

Komennolla rsync voi kokonaisen hakemistopuun kopioida toiselle koneelle ja ylläpitää kopiota. rsync osaa kopioida vain muutokset, jopa vain muuttuneen osan tiedostosta. Käynnistämällä rsync esimerkiksi kerran vuorokaudessa on suhteellisen tuore kopio tiedostoista tallessa.

Huomaa, että molemmissa koneissa pitää olla rsync ja ssh asennettuna, jotta komento toimisi:

dilbert# rsync -a --rsh=ssh /export/ peli:/opt/dilbert

Tässä kopioidaan koneesta dilbert (näkee kehoitteesta) kaikki mitä /export -hakemistosta löytyy koneeseen peli hakemistoon /opt/dilbert. Ensimmäisellä kopiointikerralla on tietysti pakko kopioida kaikki eli ei säästy mitään (mutta rsync on silti nopeampi kuin esimerkiksi ftp), mutta toisella kerralla kopioidaan vaan muuttuneista tiedostoista muuttuneet osat jolloin kopiointi sujuu huomattavasti nopeammin. Seuraavassa kuluu vain minuutti 46 sekuntia 2.3 Gigatavun levyosion "varmistamiseen", eli se on kopioitu jo kertaalleen ja juurikaan muutoksia ei ole tullut eli rsync vain tarkistaa tiedostojen olevan molemmissa päissä samat.

dilbert# time rsync -a --rsh=ssh /export/ peli:/opt/dilbert
root@peli's password: 

real	1m46.179s
user	0m9.300s
sys	0m6.330s
dilbert#