#!/bin/sh archiver=`dirname "$0"`/logarchiver rotator=`dirname "$0"`/logrotator compressor=`dirname "$0"`/logcompressor cleaner=`dirname "$0"`/logcleaner cmd= help() { cat <&2 exit 1 fi # Read variables from config-file and export it as process variables. eval `sed -ne ' s/#.*//;s/'\''/'"'\\\\\''"'/g; s/\${\([a-zA-Z][0-9a-zA-Z_]*\)}/'\''"$\1"'\''/; s/^\([a-zA-Z_][0-9a-zA-Z_]*\)=\(.*\)/\1='\''\2'\''; export \1/p ' < "$c"` # Format: Directory [Expression[/Expression[/...]]] [retention time] # Directories must be uniq! sed -ne 's/#.*//;s/^[a-zA-Z_][0-9a-zA-Z_]*=.*//;/\//p' "$c" | while read dir exp age opts do [ X = "X$age" ] || age="-a$age" while [ ! "X." = "X${exp}" ] do e="`basename "${exp}"`" exp="`dirname "${exp}"`" $cmd $archiver -e "$e" -- "$dir" done $cmd $compressor -- "$dir" [ 0 = "$age" ] || $cmd $cleaner "$age" -- "$dir" done