back

Avvio automatico

Quando avviato attraverso lo scheduler di sistema, il programma /usr/sbin/tigercron utilizza il seguente algoritmo:

  1. nel percorso /var/log/tiger/ è creato un resoconto per ogni modulo di controllo eseguito; esso reca il nome dello script che lo ha generato seguito dall'estensione .out e da un numero progressivo separato da un punto ('.') espressione di un meccanismo di "rotazione dei log" che prevede, di default, fino ad un massimo dieci log consecutivi prima di cancellare il resoconto più vecchio (nota: il numero dei livelli è configurabile attraverso il parametro TigerCron_Log_Keep_Max presente nei file di configurazione /etc/tiger/tigerrc);
  2. è generato un file di confronto in cui sono evidenziate le differenze tra il resoconto sopra indicato ed uno precedente; quest'ultimo è uno dei due di seguito indicati (sono mutualmente esclusivi) in funzione di quanto specificato nel file di configurazione:
    • un precedente resoconto scelto come riferimento e creato manualmente dall'amministratore di sistema nella directory /etc/tiger/templates; questo passaggio è configurabile attraverso il parametro Tiger_Cron_Template del file /etc/tiger/tigerrc ed è disabilitato di default nella configurazione della versione qui esaminata (per maggiori dettagli è possibile consultare il file /usr/share/doc/tiger/README.hostids.gz); per ogni modulo di controllo è possibile predisporre un solo file template ottenibile copiando il resoconto di riferimento dal percorso /var/log/tiger a quello /etc/tiger/template sostituendone l'estensione (ad esempio .out.1) con .template;
    • il resoconto cronologicamente precedente; questo passaggio è attivabile attraverso il parametro Tiger_Cron_CheckPrev del file /etc/tiger/tigerrc ed è abilitato di default nella configurazione della versione qui esaminata;
  3. i file di confronto, infine, è inviato per posta elettronica.

Si riporta di seguito il frammento di codice di /usr/sbin/tigercron corrispondente ai passaggi sopra indicati (i numeri di linea sono riportati per maggior chiarezza):

    [... omissis ...]
    240 do
    241   newfile=$filename.1
    242   previousfile=$filename.2
    243   templatefile=$filename.template
    244 #  etctemplatefile=`echo $templatefile | $SED 's/\/var\/log\/tiger\///'`
    245   etctemplatefile=`$BASENAME $templatefile`
    246
    247   if [ "$Tiger_Cron_Template" = "Y" -a -s "$TEMPLATEDIR/$etctemplatefile
    247 " ]; then
    248     $BASEDIR/util/difflogs $TEMPLATEDIR/$etctemplatefile $newfile
    249   elif [ "$Tiger_Cron_Template" = "Y" -a -s "$templatefile" ]; then
    250     $BASEDIR/util/difflogs $templatefile $newfile
    251   elif [ "$Tiger_Cron_CheckPrev" = "Y" -a -s "$previousfile" ]; then
    252     $BASEDIR/util/difflogs $previousfile $newfile
    253   else
    254     $CAT $newfile
    255   fi
    256 done >> $WORKDIR/tigcron.diff.$$
    [... omissis ...]
    273   haveallcmds MAILER && [ "$send" = "Y" ] &&  {
    274         # Mail header (so it does not just say it's root
    275         echo "From: \"Tiger automatic auditor at $(hostname)\" \
    <$Tiger_Mail_FROM>"
    276         echo "To: $Tiger_Mail_RCPT"
    277         echo "Subject: Tiger Auditing Report for $(hostname)"
    278         echo
    279         cat  $WORKDIR/tigcron.diff.$$
    280     } | $MAILER $Tiger_Mail_RCPT
    [... omissis ...]
back