[Pkg-aide-maintainers] Bug#710912: aide-common: Error in 31_aide-amanda-server

Daniel Dickinson debian at cshore.neomailbox.net
Mon Jun 3 13:34:30 UTC 2013


Package: aide-common
Version: 0.15.1-8
Severity: normal

1) Doesn't exclude template.d in /etc/amanda if one is using the templating system.  This results in configs from the template being included, with bad effects
2) Something in the sample templates from amanda produces syntax errors in the autogenerated aide config file.  It appears that for some reason host is blank and dev has the hash (#) and host (e.g. ("#host"))
3) Alternatively the error could be due to a line with only a hash (#) and maybe whitespace
4) amgetconf changerfile returns "changer" (sans quotes) if there is no changerfile defined, which confuses the 31_aide-amanda-server script and results in a line with a syntax error (define with not /)

Here is what I have a work around:


#!/bin/bash

if ! [ -d /etc/amanda ]; then
  exit 0
fi
for configfile in $(find /etc/amanda -name amanda.conf ! -path '/etc/amanda/template.d*'); do
  config="$(dirname $configfile)"
  cd $config
  CONF="${config##*/}"
  AMANDA_TAPEDEV="$(amgetconf $CONF tapedev)"
  AMANDA_TAPEDEV="${AMANDA_TAPEDEV#file:}"
  if [ -d "$AMANDA_TAPEDEV" ]; then
    echo "@@define AMANDA_TAPEDEV $AMANDA_TAPEDEV"
    for slot in $(find $AMANDA_TAPEDEV -type d -regex '.*/slot[0-9]+' -printf "%P\n"); do
      if [ -f "disklist" ]; then
        while read host dev rest; do
          if echo $host | grep -q '^\(#.*\)\?$'; then continue; fi
	  dev="$(echo $dev | sed 's|/|_|g')"
	  echo "!@@{AMANDA_TAPEDEV}/$slot/[0-9]{5}[-\.]$host\.$dev\.[0123]$"
        done < disklist
      fi
      cat <<EOF
@@{AMANDA_TAPEDEV}/$slot/00000[-\.]$CONF-$(printf "%03d" ${slot#slot})$ VarFile
!@@{AMANDA_TAPEDEV}/$slot/[0-9]{5}[-\.]TAPEEND$
@@{AMANDA_TAPEDEV}/$slot$ VarDir
EOF
    done
    cat <<EOF
@@{AMANDA_TAPEDEV}/(data|info)$ VarFile
@@{AMANDA_TAPEDEV}$ VarDir
EOF
  fi
  AMANDA_LOGDIR="$(amgetconf $CONF logdir)"
  if [ -n "$AMANDA_LOGDIR" ]; then
    cat <<EOF
@@define AMANDA_LOGDIR $AMANDA_LOGDIR
@@{AMANDA_LOGDIR}/log\.@@{YEAR4D}[0-9]{4}\.0$ LowDELog
@@{AMANDA_LOGDIR}/oldlog/log\.@@{YEAR4D}[0-9]{4}\.0$ SerMemberDELog
@@{AMANDA_LOGDIR}/amdump\.1$ LoSerMemberLog
@@{AMANDA_LOGDIR}/amdump\.[2-8]$ SerMemberLog
@@{AMANDA_LOGDIR}/amdump\.9$ HiSerMemberLog
@@{AMANDA_LOGDIR}(/oldlog)?$ VarDir
EOF
  fi
  AMANDA_INDEXDIR="$(amgetconf $CONF indexdir)"
  if [ -n "$AMANDA_INDEXDIR" ]; then
    echo "@@define AMANDA_INDEXDIR $AMANDA_INDEXDIR"
    if [ -f "disklist" ]; then
      while read host dev rest; do
        if echo $host | grep -q '^\(#.*\)\?$'; then continue; fi
        dev="$(echo $dev | sed 's|/|_|g')"
        echo "!@@{AMANDA_INDEXDIR}/$host/$dev/@@{YEAR4D}[0-9]{4}_[0123]\.gz$"
        echo "@@{AMANDA_INDEXDIR}/$host/$dev$ VarDir"
      done < disklist
    fi
  fi
  AMANDA_CHANGERFILE="$(amgetconf $CONF changerfile)"
  AMANDA_CHANGERDIR="${AMANDA_CHANGERFILE%changer}"
  if [ -n "$AMANDA_CHANGERDIR" ]; then
    echo "@@define AMANDA_CHANGERDIR $AMANDA_CHANGERDIR"
    echo "@@{AMANDA_CHANGERDIR}/(changer-(access|clean|slot)|tapelist(\.yesterday)?)$ VarFile"
    echo "@@{AMANDA_CHANGERDIR}$ VarDir"
  fi
  AMANDA_INFOFILE="$(amgetconf $CONF infofile)"
  if [ -n "$AMANDA_INFOFILE" ]; then
    echo "@@define AMANDA_INFOFILE $AMANDA_INFOFILE"
    if [ -f "disklist" ]; then
      while read host dev rest; do
        if echo $host | grep -q '^#.*$'; then continue; fi
        dev="$(echo $dev | sed 's|/|_|g')"
        echo "@@{AMANDA_INFOFILE}/$host/$dev/info$ VarFile"
        echo "@@{AMANDA_INFOFILE}/$host/$dev$ VarDir"
      done < disklist
    fi
  fi
  # this is hardcoded since amgetconf refuses to deliver diskdir
  AMANDA_HOLDING="/srv/amanda/holding"
  if [ -n "$AMANDA_HOLDING" ]; then
    echo "$AMANDA_HOLDING$ VarDir"
  fi
  echo "@@define AMANDALOG /var/log/amanda/server/$CONF"
  cat <<EOF
!@@{AMANDALOG}/(amcheck|amlogroll|amreport|amtrm(idx|log)|chunker|driver|dumper|planner|taper)\.@@{YEAR4D}[0-9]{10}\.debug$ 
!@@{AMANDALOG}/(chunker|dumper)\.@@{YEAR4D}[0-9]{13}\.debug$ 
@@{AMANDALOG}$ VarDir
/var/log/amanda/server$ VarDir
EOF
done

cat <<EOF
@@define AMANDALOG /var/log/amanda/amandad
!@@{AMANDALOG}/(amandad)\.@@{YEAR4D}[0-9]{10}\.debug$ 
@@{AMANDALOG}$ VarDir
/tmp/amanda$ VarDir
EOF

#cat <<EOF
#!@@{AMANDATMP}/(amandad|amcheck|amtrm(idx|log)|killpgrp|selfcheck|sendbackup|sendsize)\.@@{YEAR4D}[0-9]{10}\.debug$ 
#@@{AMANDATMP}$ RamdiskData-Size
#/var/lib/dumpdates$ VarFile
#EOF

Regards,

Daniel

-- System Information:
Debian Release: 7.0
  APT prefers stable-updates
  APT policy: (990, 'stable-updates'), (990, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages aide-common depends on:
ii  aide                   0.15.1-8
ii  bsd-mailx [mailx]      8.1.2-0.20111106cvs-1
ii  debconf [debconf-2.0]  1.5.49
ii  initscripts            2.88dsf-41
ii  liblockfile1           1.09-5
ii  ucf                    3.0025+nmu3

Versions of packages aide-common recommends:
ii  cron  3.0pl1-124

aide-common suggests no packages.

-- debconf information:
* aide/aideinit: false
* aideinit/copynew: true
  aideinit/overwritenew: true
  aide/newlibdir: false



More information about the Pkg-aide-maintainers mailing list