#!/bin/bash
#
# bpcdump
-# Copyright (C) 2008 by Titanium Mirror, Inc.
+# Version: __appVersion__
+#
+# Copyright (C) 2008-2012 by Titanium Mirror, Inc.
# Author: R. Steve McKown <smckown@titaniummirror.com>
#
# Dumps the BPC VEID to external storage. It must have its storage on a
unset WRITEPAR
INFO=/dev/null
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:$PATH
-SCRIPT_EXT="start stop mount umount"
+SCRIPT_EXT="conf start stop mount umount"
CONF_DIR=/etc/vz/conf
# FUNCTIONS
info()
{
- echo "$*" | tee -a "$INFO"
+ if [ -n "$INFO" ]; then
+ echo "$*" | tee -a "$INFO"
+ else
+ echo "$*"
+ fi
}
error()
{
- echo "$*" | tee -a "$INFO" >&2
+ if [ -n "$INFO" ]; then
+ echo "$*" | tee -a "$INFO" >&2
+ else
+ echo "$*"
+ fi
}
restartve()
cleanup 1 "VEID private fs must be mounted to determine its size"
fi
-# Before we begin writing, remove old backup dirs until we have room
+# Before we begin writing, remove old backup dirs until we have room.
+# Assume backups for any VE are fair game for removal if space is needed.
+# Other disk contents shall not be removed.
dstblks=$(df -P "$EXTFS" | grep "$EXTFS" | awk '{ print $4 }')
while [ $dstblks -le $srcblks ]; do
info "Only $dstblks free on $EXTFS"
- oldest=$(cd $EXTFS && eval ls -td "ve${VEID}*" 2>/dev/null | tail -1)
- if [ -d "$EXTFS/$oldest" ]; then
+ oldest=$(cd $EXTFS && eval ls -td "ve[0-9]*" 2>/dev/null | tail -1)
+ if [ -z "$oldest" ]; then
+ cleanup 1 "out of space: need $srcblks KB, have $dstblks KB"
+ elif [ -d "$EXTFS/$oldest" ]; then
info "Removing old backup $oldest from $EXTFS"
rm -rf "$EXTFS/$oldest"
else