Duplicity

Linux.fista
Versio hetkellä 6. elokuuta 2015 kello 11.24 – tehnyt Oselotti (keskustelu | muokkaukset) (→‎Varmuuskopiointi)
Siirry navigaatioon Siirry hakuun
Duplicity
Käyttöliittymä teksti
Lisenssi GPLv2+
Kotisivu duplicity.nongnu.org

Duplicity on rsync-protokollaa käyttävä Pythonilla kirjoitettu varmuuskopiointiohjelma, jolla tehdään salatut varmuuskopiot tiedostoista. Duplicity käyttää GnuPG-salausohjelmaa varmuuskopioiden salaukseen, joten symmetrisen salauksen lisäksi myös avainparisalaus on mahdollinen. Duplicity on erityisen kätevä varmuuskopioitaessa SSH:n yli etäpalvelimelle. Duplicity tukee versiointia ja osaa myös tallentaa tiedostojen oikeudet. Linkeistä Duplicity tukee symbolisia linkkejä, mutta ei kovia linkkejä.

Asennus

Duplicity löytyy useimpien jakeluiden paketinhallinnasta nimellä duplicity. Lisätietoja ohjelmien asentamisesta löytyy artikkelista Ohjelmien asentaminen.

Käyttötapaus: /home -hakemiston varmuuskopiointi palvelimelle

Duplicityn käyttöön tulee luoda PGP- ja SSH-avainparit. Lisätietoa löytyy artikkeleista PGP-avainparin luominen ja SSH-avainparin luominen. PGP-avainta ei tarvita jos käytetään symmetristä salausta, mutta avainparisalaus on vahvempi, joten tässä ohjeessa käsitellään Duplicityn käyttö avainparilla.

Komennot, jotka alkavat $-merkillä suoritetaan tavallisena käyttäjänä ja komennot, jotka alkavat #-merkillä suoritetaan pääkäyttäjänä. Katso myös su, sudo ja doas.

Valmistelu

Luodaan ensin uusi avainpari duplicityn käyttöön root-tunnukselle. Salasana jätetään tyhjäksi.

# ssh-keygen -t rsa -b 4096

Kopioidaan julkinen avain palvelimelle.

# ssh-copy-id käyttäjä@esimerkki.fi

Kirjaudutaan palvelimelle ja luodaan hakemisto varmuuskopioille.

# ssh käyttäjä@esimerkki.fi
$ mkdir ~/varmuuskopio
$ exit

Luodaan PGP-avainpari GnuPG-ohjelmalla rootille /root/.gnupg/ -hakemistoon. GPG:lle tulisi antaa vahva salasana.

# gpg --gen-key

Oman avaimen tunnusta tarvitaan myöhemmin. Sen saa näkyviin komennolla:

# gpg --list-keys

Varmuuskopiointi

/home voitaisiin varmuuskopioida palvelimelle nyt näin:

# duplicity --encrypt-key avaimen_tunnus /home sftp://käyttäjä@esimerkki.fi/varmuuskopio

Koska varmuuskopiota ei ole tehty aiemmin, duplicity tekee täyden varmuuskopion. Kun varmuuskopio tehdään uudestaan, ei kopioida kaikkea uudestaan, vaan kopioidaan vain muutokset, eli tehdään inkrementaalinen varmuuskopio. Uuden täyden varmuuskopion voi tehdä kuitenkin full -parametrilla.

# duplicity full --encrypt-key avaimen_tunnus /home sftp://käyttäjä@esimerkki.fi/varmuuskopio

Jos ei haluta että Duplicity kysyy PGP-avaimen salasanaa, voidaan se antaa esimerkiksi näin:

# PASSPHRASE="avaimen_salasana" duplicity --encrypt-key avaimen_tunnus /home sftp://käyttäjä@esimerkki.fi/varmuuskopio

Tämä on erityisen hyödyllinen esimerkiksi skripteissä.

Jos halutaan poistaa palvelimelta esimerkiksi kaikki paitsi kolme uusinta täyttä varmuuskopiota muutoksineen, voitaisiin ne poistaa näin:

# duplicity remove-all-but-n-full 3 --force sftp://käyttäjä@esimerkki.fi/varmuuskopio

Varmuuskopiointi voitaisiin automatisoida esimerkiksi cronilla, jolloin inkrementaaliset varmuuskopiot voitaisiin tehdä päivittäin ja täydet varmuuskopiot esimerkiksi kerran viikossa tai kuukaudessa.

Tiedostojen palauttaminen varmuuskopiosta

Koko /home/ -hakemisto voitaisiin palauttaa varmuuskopiosta seuraavasti:

# PASSPHRASE="avaimen_salasana" duplicity sftp://käyttäjä@esimerkki.fi/varmuuskopio /home

Tietty tiedosto voidaan palauttaa --file-to-restore /tiedoston/polku parametrilla.

# PASSPHRASE="avaimen_salasana" duplicity --file-to-restore /home/user/kuvat/lomakuva.png sftp://käyttäjä@esimerkki.fi/varmuuskopio /home/user/kuvat/lomakuva.png