Christian Seiler: Archivierung

Beitrag lesen

Hi,

Klingt für mich so, als würde ein normales Shell-Script mit ein paar "cp"- und "mkdir"-Befehlen das schon tun.

Geht das uch wenn sich die sub-ordner und die datei namen ändern?

Was genau willst Du denn machen?

So?

Verz: daten/ (enthält alle zu archivierenden Daten)
Verz: archiv/Jahr_Quartal/ (enthält eine die archivierten Daten)

Dann würde ich das in etwa so schreiben (ich stelle das jetzt mal unter die GPL *g*):

-----------------------------------------------------------------------------------
#!/bin/bash

BASEDIR=/mnt/mydata
DATADIR=daten
ARCHIVEDIR=archiv

CURR_YEAR=date +%Y
CURR_MONTH=date +%m | sed s/^0//

DIRECTORY=${CURR_YEAR}_$(($CURR_MONTH/4+1))

if test ! -d $BASEDIR/$DATADIR ; then
        echo "Data directory $BASEDIR/$DATADIR does not exist." >&2
        exit 1
fi

if test ! -d $BASEDIR/$ARCHIVEDIR ; then
        echo "Archive directory $BASEDIR/$ARCHIVEDIR does not exist." >&2
        exit 2
fi

if test -e $BASEDIR/$ARCHIVEDIR/$DIRECTORY ; then
        echo "Destination directory $BASEDIR/$ARCHIVEDIR/$DIRECTORY already exists. Archive already happened?" >&2
        exit 3
fi

echo "Creating directory ..."
mkdir -p $BASEDIR/$ARCHIVEDIR/$DIRECTORY

if ! test -d $BASEDIR/$ARCHIVEDIR/$DIRECTORY ; then
        exit 4
fi

echo "Copying files ..."
cp -va $BASEDIR/$DATADIR/* $BASEDIR/$ARCHIVEDIR/$DIRECTORY

-----------------------------------------------------------------------------------

Grüße,

Christian