#!/bin/bash # # Initialisierung. # # SYNTAX: tw_init source ${0%/*}/tw_conf DATABASE=tw.db_$HOSTNAME DBSIG=tw.db_sig function setentries { # Liest markierte Einträge. unset -v entry h=$IFS ; IFS=${h:2:1} ; declare -i i=0 for l in $(grep "#.*$1" $DESTDIR/tw.config$ext); do entry[$i]=${l%% *} ; i=$((i+1)) done IFS=$h } declare -i i=1 for conf in $DESTDIR/tw.config*; do ext=${conf#*tw.config} if [ -z "$ext" ]; then echo -n "$i) ..." else echo -n "$i) ${ext#-}..." fi i=$((i+1)) if ! [ -e $DATADIR/$DATABASE$ext ]; then setentries FLAG # Dummies verteilen! for path in ${entry[*]}; do echo " - ASR-Dummy - " >$path done # Datenbank erzeugen! new_db="./databases/$DATABASE" db=$DATADIR/$DATABASE$ext dbsig=$DBSIGDIR/$DBSIG$ext dbback=$BACKUPDIR/$DATABASE$ext if $DESTDIR/tripwire --initialize --quiet --cfgfile $conf; then cp -p $new_db $db ; chmod 600 $db # Arbeitskopie... $DESTDIR/siggen -7 $new_db >$dbsig ; chmod 600 $dbsig # ...zug. Signatur... gzip -1 -c $new_db >$dbback.gz ; gzip -t $dbback.gz # ...und Sicherheitskopie der Datenbank. else echo -e "stop.\n --> ${0##*/}: Laufzeitfehler!" fi # Dummies einsammeln! for path in ${entry[*]}; do rm -f $path done echo 'ok.' else echo -e "stop.\n --> ${0##*/}: Datenbank bereits vorhanden!" fi done