evolution-migrator.sh - Evolution levelező gconf beállításainak migrálása

Az Evolution már tartalmazza a backup/restore funkciót a 2.20 verzó óta, ami 2007 szeptemberében jött ki. Ez egyaránt kezeli a konfiguráció és az adat migrálását, így ez a szkript fölöslegessé vált. Ennek ellenére jó ötletet adhat abban, hogy hogyan migrálhatunk konfigurációt más gconf-alapú alkalmazások esetében.

A probléma: Adott gépről át szeretném vinni egy adott felhasználó levelezőjének beállításait egy másik gépre, pontosabban automatizálni szeretném ez a feladatot. Fontos megjegyezni, hogy itt pusztán a beállításokról van szó, a levelekről, kalendáriumról nem. Utóbbiakat egyszerű fájl-mozgatással meg lehet oldani.

A szkript egy olyan állományt állít elő, amely tartalmazza az Evolution alkalmazás gconf beállításait. Ezt az állományt egy másik gépen futtatva átmigrálódnak a levelező beállításai. Ehhez analóg eljárással tetszőleges olyan alkalmazás konfigurációját migrálhatjuk, amelyek a gconf-ban tárolják beállításaikat.

Néhány implementációs részlet: Gconf beállításokat a gconftool-2 paranccsal XML formátumba lehet exportálni, és ezt az XML fájlt használhatjuk a másik gépen a beállítások importálására. A szkriptem az XML-t először tömöríti, majd base64-kódolja, így egy hordozható/mailezhető/copy-paste-elhető szövegfájlt kapunk, amely önkicsomagoló, tehát futtatva elvégzi a teljes kódolási, kitömörítési és importálási feladatsort. Nekem fontos szempont volt, hogy ne kelljen egynél több fájl a megoldáshoz, ne kelljen figyelni arra, hogy hogyan hívják az adott fájlt, csak elindítom és kész.


#!/bin/sh

# version 2.0 - 2007-04-21
OUT=evolution-import_$(date --rfc-3339\=date).sh
cat > $OUT <<EOF
#!/bin/sh

DATA=/tmp/evolution-data.xml
tail -n +7 \$0 | openssl base64 -d -v | gzip -d > \$DATA
gconftool-2 --load \$DATA; rm \$DATA
exit 0

EOF
gconftool-2 --dump /apps/evolution | gzip | openssl base64 >> $OUT
chmod 755 $OUT
© 2003-2020 lithium.io7.org
Erre a weblapra a Creative Commons Nevezd meg! - Így add tovább! 3.0 Unported Licensz vonatkozik.