Files
secondo/bin/rmlogs
2026-01-23 17:03:45 +08:00

71 lines
1.3 KiB
Bash

#!/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