#/bin/sh # kdepim backup script with kdialog # v .2 2008-03-21 # kdialog --dontagain pimbackup:helloworld --msgbox "This is a simple backup script for all data related to kdepim and kdenetwork like mails, contacts, settings et cetera. It will save all settings and data for the following apps: akregator, basket, kaddressbook, kgpg, kmail, knotes, kopete, korganizer and kwallet. Just choose the target folder :)" # # SETUP # StoreFLDR=$(kdialog --getexistingdirectory ~/ --title " Where shall i store the backup ? ") case $? in 1) kdialog --sorry "Bye bye" ; exit ;; 0) mkdir -p $StoreFLDR ; echo "ok" ;; esac TempFLDR=~/.pimbackup if [ -d "$TempFLDR" ] ; then rm -rf $TempFLDR mkdir $TempFLDR else mkdir $TempFLDR fi # # DATE FORMAT # # (YY.MM.DD - german) #Date=$(date +%d.%m.%g) # (DD-MM-YY) Date=$(date +%g-%m-%d) # # LETS START # dcopRef=`kdialog --title "pimBackup" --progressbar "Starting backup ..." 25` dcop $dcopRef setProgress 2 dcop $dcopRef setLabel "Creating temporary folders ..." mkdir $TempFLDR/.kde mkdir $TempFLDR/.kde/share mkdir $TempFLDR/.kde/share/config mkdir $TempFLDR/.kde/share/apps mkdir $TempFLDR/.kde/share/config/kresources mkdir $TempFLDR/.gnupg dcop $dcopRef setProgress 3 dcop $dcopRef setLabel "Copying email accounts ..." cp $HOME/.kde/share/config/emaildefaults $TempFLDR/.kde/share/config/ dcop $dcopRef setProgress 4 dcop $dcopRef setLabel "Copying email identities ..." cp $HOME/.kde/share/config/emailidentities $TempFLDR/.kde/share/config/ dcop $dcopRef setProgress 5 dcop $dcopRef setLabel "Copying kmail settings ..." cp $HOME/.kde/share/config/kmail.eventsrc $TempFLDR/.kde/share/config/ cp $HOME/.kde/share/config/kmailrc $TempFLDR/.kde/share/config/ dcop $dcopRef setProgress 6 dcop $dcopRef setLabel "Copying kaddressbook settings ..." cp $HOME/.kde/share/config/kaddressbookrc $TempFLDR/.kde/share/config/ cp -r $HOME/.kde/share/config/kresources/contact $TempFLDR/.kde/share/config/kresources/ dcop $dcopRef setProgress 7 dcop $dcopRef setLabel "Copying emails and account data ..." cp -r $HOME/.kde/share/apps/kmail $TempFLDR/.kde/share/apps/ dcop $dcopRef setProgress 8 dcop $dcopRef setLabel "Copying addressbook ..." cp -r $HOME/.kde/share/apps/kabc $TempFLDR/.kde/share/apps/ dcop $dcopRef setProgress 9 dcop $dcopRef setLabel "Copying Korganizer settings and entries ..." cp $HOME/.kde/share/config/korgacrc $TempFLDR/.kde/share/config/ cp $HOME/.kde/share/config/korganizerrc $TempFLDR/.kde/share/config/ cp -r $HOME/.kde/share/apps/korganizer $TempFLDR/.kde/share/apps/ dcop $dcopRef setProgress 10 dcop $dcopRef setLabel "Copying Kopete settings ..." cp $HOME/.kde/share/config/kopeterc $TempFLDR/.kde/share/config/ cp $HOME/.kde/share/config/kopete $TempFLDR/.kde/share/config/ cp $HOME/.kde/share/config/kopete.eventsrc $TempFLDR/.kde/share/config/ cp -r $HOME/.kde/share/apps/kopete $TempFLDR/.kde/share/apps/ cp -r $HOME/.kde/share/apps/kopete_otr $TempFLDR/.kde/share/apps/ cp -r $HOME/.kde/share/apps/kopeterichtexteditpart $TempFLDR/.kde/share/apps/ dcop $dcopRef setProgress 11 dcop $dcopRef setLabel "Copying Konversation settings ..." cp $HOME/.kde/share/config/konversationrc $TempFLDR/.kde/share/config/ cp $HOME/.kde/share/config/konversation.eventsrc $TempFLDR/.kde/share/config/ cp -r $HOME/.kde/share/apps/konversation $TempFLDR/.kde/share/apps/ dcop $dcopRef setProgress 12 dcop $dcopRef setLabel "Copying Knotes settings and notes ..." cp $HOME/.kde/share/config/knotesrc $TempFLDR/.kde/share/config/ cp -r $HOME/.kde/share/apps/knotes $TempFLDR/.kde/share/apps/ dcop $dcopRef setProgress 13 dcop $dcopRef setLabel "Copying GPG settings and keys ..." cp $HOME/.kde/share/config/kgpgrc $TempFLDR/.kde/share/config/ cp -r $HOME/.gnupg/* $TempFLDR/.gnupg/ dcop $dcopRef setProgress 13 dcop $dcopRef setLabel "Copying Kwallet settings ..." cp -r $HOME/.kde/share/apps/kwallet $TempFLDR/.kde/share/apps/ cp $HOME/.kde/share/config/kwalletrc $TempFLDR/.kde/share/config/ dcop $dcopRef setProgress 14 dcop $dcopRef setLabel "Copying Akregator settings ..." cp $HOME/.kde/share/config/akregator.eventsrc $TempFLDR/.kde/share/config/ cp $HOME/.kde/share/config/akregatorrc $TempFLDR/.kde/share/config/ cp $HOME/.kde/share/config/kopete.eventsrc $TempFLDR/.kde/share/config/ dcop $dcopRef setProgress 15 dcop $dcopRef setLabel "Copying Akregator feeds and cache ..." cp -r $HOME/.kde/share/apps/akregator $TempFLDR/.kde/share/apps/ dcop $dcopRef setProgress 16 dcop $dcopRef setLabel "Copying Basket settings ..." cp $HOME/.kde/share/config/basketrc $TempFLDR/.kde/share/config/ dcop $dcopRef setProgress 17 dcop $dcopRef setLabel "Copying Basket notes ..." cp -r $HOME/.kde/share/apps/basket $TempFLDR/.kde/share/apps/ dcop $dcopRef setProgress 18 dcop $dcopRef setLabel "Creating tarball ..." cd $TempFLDR sleep 1 dcop $dcopRef setProgress 19 dcop $dcopRef setLabel "Creating tarball ..." tar cf pimbackup.tar . dcop $dcopRef setProgress 20 dcop $dcopRef setLabel "Checking bzip2 ..." if [ -e "/usr/bin/pbzip2" ] ; then dcop $dcopRef setProgress 21 dcop $dcopRef setLabel "Nice, you have pbzip2 installed :) ..." sleep 2 dcop $dcopRef setProgress 22 dcop $dcopRef setLabel "Compressing tarball ..." pbzip2 -p2 -r pimbackup.tar else dcop $dcopRef setProgress 21 dcop $dcopRef setLabel "Using standard bzip2 ..." sleep 2 dcop $dcopRef setProgress 22 dcop $dcopRef setLabel "Compressing tarball ..." bzip2 --best pimbackup.tar fi dcop $dcopRef setProgress 23 dcop $dcopRef setLabel "Moving backup to destination ..." mv pimbackup.tar.bz2 $StoreFLDR/pimbackup.$Date.tar.bz2 dcop $dcopRef setProgress 24 dcop $dcopRef setLabel "Cleaning up ..." rm -rf $TempFLDR dcop $dcopRef setProgress 25 dcop $dcopRef setLabel "Backup saved in $StoreFLDR" sleep 2 dcop $dcopRef close kdialog --dontagain pimbackup:alldone --msgbox "You can find the compressed backup in $StoreFLDR, just extract it into your home directory to restore a backup or use the pimRestore script." exit 1