#!/bin/bash # # rmlogs [dbDir] - removes BERKELEY-DB log files # dbDir=$HOME/secondo-databases; if [ "$1" != "" ]; then dbDir="$1" fi if [ -d $dbDir ]; then echo "Cleaning $dbDir ..." else echo "Directory $dbDir does not exist." exit 1 fi which db_archive >/dev/null if [ $? -eq 0 ]; then ARCHIVE=db_archive else ARCHIVE=$(ls /usr/bin/db?.?_archive) fi if [ -z "$ARCHIVE" ]; then echo "tool db_archive not found" exit 1 fi which "$ARCHIVE" >/dev/null if [ $? -ne 0 ]; then echo "Try to use $ARCHIVE as db_archive failed" exit 1 fi which db_checkpoint >/dev/null if [ $? -eq 0 ]; then CHECKPOINT=db_checkpoint else CHECKPOINT=$(ls /usr/bin/db?.?_checkpoint) if [ -z "$CHECKPOINT" ]; then echo "tool db_checkpoint not found" exit 1 else which $CHECKPOINT >/dev/null if [ $? -ne 0 ]; then echo "Try to use $CHECKPOINT as db_checkpoint failed" exit 1 fi fi fi cd $dbDir if [ $? -ne 0 ]; then echo "Error: Could not change to $dbDir" else echo "Deleting unused log files in $dbDir ..." $CHECKPOINT -v1 for file in $($ARCHIVE); do echo "deleting $file" rm -f $file done echo "Deleting old 0tmp subdirectories ..." files=$(find $dbDir -name "0tmp*") for file in $files; do echo "deleting $file" rm -rf $file done fi