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 version of the Berkeley DB utilities installed." 1>&2
34 echo "Using the latest one." 1>&2
35 RECOVER=`ls /usr/bin/db*recover |sort |tail -n 1`
36 DUMP=`ls /usr/bin/db*dump |sort |tail -n 1`
37 LOAD=`ls /usr/bin/db*load |sort |tail -n 1`
39 RECOVER=`ls /usr/bin/db*recover`
40 DUMP=`ls /usr/bin/db*dump`
41 LOAD=`ls /usr/bin/db*load`
44 echo "database_cleanup.sh cannot find the Berkeley DB utilities. Exiting." 1>&2
57 Citadel Database Cleanup
58 ---------------------------
60 This script exports, deletes, and re-imports your database. If you have
61 any data corruption issues, this program may be able to clean them up for you.
63 Please note that this program does a Berkeley DB dump/load, not a Citadel
64 export. The export files are not generated by the Citadel export module.
67 MAKE A BACKUP OF YOUR DATA BEFORE ATTEMPTING THIS. There is no guarantee
68 that this will work (in case of disk full, power failure, program crash)!
71 citserver must NOT be running while you do this.
74 Please try "cd $DATA_DIR; $RECOVER -c" first. Run citserver afterwards to
75 revalidate whether its fixed or not, No news might be good news. Use this
76 tool only if that one fails to fix your problem.
79 You must have an amount of free space on your disk that is at least twice
80 the size of your database, see the following output:
81 (for substantially better performance you should specify a location that is
82 on another disk than $DATA_DIR)
86 you will need `du -sh $DATA_DIR|sed "s;/.*;;"` of free space.
90 echo -n "Do you want to continue? "
94 "y" | "Y" | "yes" | "YES" | "Yes" )
96 echo DO NOT INTERRUPT THIS PROCESS.
103 for x in 00 01 02 03 04 05 06 07 08 09 0a 0b 0c
106 echo Dumping $filename
107 $DUMP -h $DATA_DIR $filename >/tmp/CitaDump.$x || die
108 rm -f $DATA_DIR/$filename
111 echo Removing old databases
114 for x in 00 01 02 03 04 05 06 07 08 09 0a 0b 0c
117 echo Loading $filename
118 $LOAD -h $DATA_DIR $filename </tmp/CitaDump.$x && {
119 rm -f /tmp/CitaDump.$x
124 echo Dump/load operation complete. Start your Citadel server now.