8 # data dir from autoconf?
9 DATA_DIR="@MAKE_DATA_DIR@"
10 if test -z "$DATA_DIR" ; then
11 DATA_DIR="/usr/local/citadel"
13 DATA_DIR=$DATA_DIR/data
15 # If we're on an Easy Install system, use our own db_ tools.
17 if [ -x /usr/local/ctdlsupport/bin/db_dump ] ; then
18 export PATH=/usr/local/ctdlsupport/bin:$PATH
19 RECOVER=/usr/local/ctdlsupport/bin/db_recover
20 DUMP=/usr/local/ctdlsupport/bin/db_dump
21 LOAD=/usr/local/ctdlsupport/bin/db_load
25 if test -f /usr/bin/db_dump; then
26 RECOVER=/usr/bin/db_recover
30 if test -n "`ls /usr/bin/db?*recover`"; then
31 # seems we have something debian alike thats adding version in the filename
32 if test "`ls /usr/bin/db*recover |wc -l`" -gt "1"; then
33 echo "Warning, you have more than one berkley db utility version installed. using the latest one." 1>&2
34 RECOVER=`ls /usr/bin/db*recover |sort |tail -n 1`
35 DUMP=`ls /usr/bin/db*dump |sort |tail -n 1`
36 LOAD=`ls /usr/bin/db*load |sort |tail -n 1`
39 echo "We can't find the berkeley DB tools, exiting." 1>&2
52 Citadel Database Cleanup
53 ---------------------------
55 This script exports, deletes, and re-imports your database. If you have
56 any data corruption issues, this program may be able to clean them up for you.
58 Please note that this program does a Berkeley DB dump/load, not a Citadel
59 export. The export files are not generated by the Citadel export module.
62 MAKE A BACKUP OF YOUR DATA BEFORE ATTEMPTING THIS. There is no guarantee
63 that this will work (in case of disk full, power failure, program crash)!
66 citserver must NOT be running while you do this.
69 Please try "cd $DATA_DIR; $RECOVER -c" first. Use this tool
70 only if that one fails to fix your problem.
73 You must have an amount of free space on your disk that is at least twice
74 the size of your database, see the following output:
75 (for substantial better performance you should specify a location that's
76 on another disk than $DATA_DIR)
80 you will need `du -sh $DATA_DIR|sed "s;/.*;;"` of free space.
84 echo -n "Do you want to continue? "
88 "y" | "Y" | "yes" | "YES" | "Yes" )
90 echo DO NOT INTERRUPT THIS PROCESS.
97 for x in 00 01 02 03 04 05 06 07 08 09 0a
100 echo Dumping $filename
101 $DUMP -h $DATA_DIR $filename >/tmp/CitaDump.$x || die
102 rm -f $DATA_DIR/$filename
105 echo Removing old databases
108 for x in 00 01 02 03 04 05 06 07 08 09 0a
111 echo Loading $filename
112 $LOAD -h $DATA_DIR $filename </tmp/CitaDump.$x && {
113 rm -f /tmp/CitaDump.$x
118 echo Dump/load operation complete. Start your Citadel server now.