ubuntuusers.de

pimbackup.sh

Autor:
Sheriff_Carter
Datum:
12. Oktober 2008 01:59
Code:
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
#/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