Hallo zusammen :-)

Das Ganze besteht aus 2 scripts.

baksvn (bash-script) löscht hotcopy-Verzeichnisse, die 7 Tage oder älter sind. Anschließend wird für jedes Repository in SVNREPOS eine neue hotcopy erstellt.

cmpdir.pl (perl-script) stellt fest, welches hotcopy-Verzeichnis 7 Tage oder älter ist und gibt den Verzeichnisnamen oder 0 zurück.

--- BoF baksvn ---
Code:
#!/bin/bash

ISODATE='/bin/date +%Y-%m-%d'

SVNCMD='svnadmin hotcopy'
SVNROOT='/home/subversion'
SVNREPOS='administration development'
SVNTARGET="hotcopy.$($ISODATE)"
SVNDIRS=$(find /home/subversion/hotcopy.* -maxdepth 0 -type d -print)

for i in $SVNDIRS; do
    d=$(cmpdir.pl $i)
    if [ $d != "0" ]; then
        rm -rf $d
    fi
    echo
done

for i in $SVNREPOS; do
    $SVNCMD $SVNROOT/$i $SVNROOT/$SVNTARGET"_"$i
done

exit
--- EoF baksvn ---

--- BoF cmpdir.pl ---
Code:
#! /usr/bin/perl

use strict;
use Date::Manip;

my  ($Param, $PValue, $Attic, $Error);

$Param = $ARGV[0];
$PValue = $Param;
$PValue =~ s/^\/home\/subversion\/hotcopy\.(\d{4}-\d{2}-\d{2})_.*$/$1/;
$Attic = UnixDate(DateCalc("today", "- 7 days", \$Error), "%Y-%m-%d");

if (DateCalc($PValue, $Attic, \$Error) =~ /^\+/) { print $Param; }
    else { print "0"; }

exit(0);
--- EoF cmpdir.pl ---