--- /dev/null
+#! /bin/sh
+#
+usage="\
+Usage: $0 -c <client> [-d <backupnumber> -b <before data> | -l]
+
+delete specified backups.
+Attention!
+ If a full backup deleted all depending incr. backups
+ will also be deleted.
+
+ -c <client> - client machine for which the backup was made
+ -d <number> - number of Backup which should be deleted
+ -b <date> - delete all backups before this date (YYYY-MM-DD)
+ -l - list the backups which made for <client>
+ -h - this help
+
+Example:
+list backups of <client>
+ $0 -c <name of the client which was backed up> -l
+
+remove backup #3 from <client>
+ $0 -c <name of the client which was backed up> -d 3
+
+remove all backups before 2007-07-02 from <client>
+ $0 -c <name of the client which was backed up> -b 2007-07-02
+"
+
+typeset -i len
+clUser=root
+type="rsa"
+
+while test $# -gt 0; do
+ case "$1" in
+ -c | --client )
+ shift; client=$1; shift;;
+ -b | --before )
+ shift; bDate=$1; shift;;
+ -d | --delete )
+ shift; bNumber=$1; shift;;
+ -l | --list )
+ list="true"; shift;;
+ * | -h | --help)
+ echo "$usage"
+ exit 0
+ ;;
+ esac
+done
+
+if [ -z "$client" ] || [ -z $list ] && [ -z $bNumber ] && [ -z $bDate ]
+then
+ echo "$usage"
+ exit 0
+fi
+
+TopDir=`grep $Conf{TopDir} /etc/backuppc/config.pl | awk '{print $3}'`
+len=${#TopDir}-3
+TopDir=${TopDir:1:len}
+ls $TopDir/pc > /dev/null 2>&1
+while [ $? != 0 ]
+do
+ read -p "examined $TopDir seems wrong. What is TopDir ? " TopDir
+ ls $TopDir/pc > /dev/null 2>&1
+done
+
+ls $TopDir/pc/$client > /dev/null 2>&1
+if [ $? != 0 ]
+then
+ echo "$client have no backups"
+ exit 1
+fi
+
+if [ ! -z $list ]
+then
+ while read CLine
+ do
+ BackupNumber=`echo $CLine | awk '{print $1}'`
+ BackupType=`echo $CLine | awk '{print $2}'`
+ BackupTime=`stat -c "%y" $TopDir/pc/$client/$BackupNumber | awk '{print $1}'`
+ echo "BackupNumber $BackupNumber - $BackupType-Backup from $BackupTime"
+ done < $TopDir/pc/$client/backups
+ exit 0
+fi
+
+if [ ! -z $bNumber ] && [ ! -e $TopDir/pc/$client/$bNumber ]
+then
+ echo "Backup Number $bNumber does not exist for client $client"
+ exit 1
+fi
+
+delete2full="false"
+rm -f $TopDir/pc/$client/backups.new > /dev/null 2>&1
+while read CLine
+do
+ BackupNumber=`echo $CLine | awk '{print $1}'`
+ BackupTime=`stat -c "%y" $TopDir/pc/$client/$BackupNumber | awk '{print $1}'`
+ BackupType=`echo $CLine | awk '{print $2}'`
+ if [ $BackupType == "full" ]
+ then
+ delete2full="false"
+ fi
+ if [ "$BackupTime" \< "$bDate" ] || [ $BackupNumber == "$bNumber" ] || [ $delete2full == "true" ]
+ then
+ if [ $BackupType == "full" ]
+ then
+ if [ $delete2full == "false" ]
+ then
+ delete2full="true"
+ else
+ delete2full="false"
+ fi
+ fi
+ bNumber=$BackupNumber
+ echo "remove $TopDir/pc/$client/$bNumber"
+ rm -fr $TopDir/pc/$client/$bNumber > /dev/null 2>&1
+ fi
+ if [ $BackupNumber != $bNumber ]
+ then
+ echo "$CLine" >> $TopDir/pc/$client/backups.new
+ fi
+done < $TopDir/pc/$client/backups
+mv $TopDir/pc/$client/backups.new $TopDir/pc/$client/backups
+
+exit $?
\ No newline at end of file