hylafax segfault

Van nekem egy fax szerverem. - vagyis nem az enyém, de az enyém:) - Ez a szerencsétlen időnként - állandóan - segfaultol itt ott, bár azt már észrevettem, hogy minden egyes segfault ugyan annak a feladónak a faxaitól keletkezik.
Hogy miért? Ki tudja!?

Meguntam már hogy állandóan oda kell rohanni, bámulni az új log bejegyzés(eke)t, újraindítani a Hylafaxot, jópofizni, magyarázkodni keljen, majd elköszönni.

sz'al írtam rá egy scriptet. Rohangáljon az.
Cronból teszi ezt 5 percenként, de mint láthatod ez egy deszkamodell, alig három, három és fél hónapja működik ezen fax szerveren, és azóta még nem kellet odamennem jópofizni.

Azt azért újra meg kell jegyeznem, hogy kísérleti darab. És mint mindenki, - vagy inkább mint senki - a programot csak a saját felelősségedre...
blablabla


#!/bin/bash
# HylaFax segfaultot ellenőrző script

#################################
# apostrophe at t-online dot hu #
#################################

MESSAGE=
MAILADDR='faxmaster'
SUBJECT='Hylafax error'
LOCK='/var/lock/chkhylafax.loc'
SFDATES='/var/local/hylafax-segfault'
SFLOG='/var/log/hylafax-segfault.log'
LOGMESSAGES='/var/log/messages'
FILTER='faxgetty\[[0-9]*\]: segfault at .* error 4'
TREATED='no'

[ -e "$LOCK" ] && exit 0 || touch "$LOCK"
trap 'rm -f '"$LOCK"'' EXIT

[ -e $(dirname $SFDATES) ] || mkdir $(dirname $SFDATES)
[ -e "$SFDATES" ] || touch "$SFDATES"

# echo "$(date "+%h %d %H:%M:%S") $(hostname) $(basename $0): run $0 " >> /var/log/hylafax-segfault.log

########################################################################
# Törlés a segfaultok dátumát jelző filéből                            #
#
# A logrotate miatt a /var/log/messages filéből eltűnnek a bejegyzések #
# ez tévesen/feleslegesen újraindítja a HylaFax servert                #

# /var/local/hylafax-segfault beolvasása soronként
cat "$SFDATES" | \
    while read LINE
do
    # a segfaultok dátumait összeveti a messagesben található segfault bejegyzésekkel
    if cat "$LOGMESSAGES" | grep "^$LINE .* $FILTER"
    then
	:
    else
	# mivel a segfault dátuma nem található a messagesben,
	# töröli a segfault dátumai közül
	sed -i '/^'"$LINE"'/d' "$SFDATES"
    fi
done

# az esetleges üres sorok törlése
sed -i '/^$/d' "$SFDATES"

#######################################
# HylaFax szerver segfaultok kezelése #

# a messages listázása
# a HylaFax segfaultok keresése
# csak a dátum kell
# beolvasás soronként
cat "$LOGMESSAGES" | grep "$FILTER" | \
                     awk '{print $1 " " $2 " " $3}' | \
    while read LINE
do
    # segfault keresése a kezelt segfaultok listájában
    if cat "$SFDATES" | grep -q "^$LINE"
    then
	:
    else
	# a segfault dátumát menti a kezelt segfaultok közé
	echo "$LINE" >> "$SFDATES"
	# megakadályozza az többszöri újraindítást
	if [ "$TREATED" = 'no' ]
	then
	    # újraindítja a HylaFax servert
	    service hylafax restart
	    TREATED='yes'
	fi
	# a feldolgozás alatt álló segfault logjának kiválasztása
	LOGMESSAGE="$(cat "$LOGMESSAGES" | grep "^$LINE .* $FILTER")"
	# segfault feldolgozásának logolása
	echo "$LOGMESSAGE" >> "$SFLOG"
	# e-mail szövege
	MESSAGE+="$LOGMESSAGE\n\n"
	sleep 2
    fi
done
# a faxmaster felhasználó értesítése
# - ha kell -
[ "$TREATED" = 'yes' ] && echo -e "$SUBJECT:\n$MESSAGE" | mail -s "$SUBJECT" "$MAILADDR"
# ez már a vég

Megoldásra vár még, hogy mi legyen akkor, ha minden újraindításnál elhasal a hylafax,
és jó lenne valami statisztika arról, hogy mely fax küldőknél szál el. Ez utóbbi azonban elég gáz, mert a legtöbb faxgép nincs (rendesen) beállítva. Jó esetben a faxszám , de sok esetben még ez sem.
Aztán előfordult már az is, hogy az nt-t, és az adsl szűrőt kellet kihúzni a telefonhálózatból, hogy egyáltalán legyen vonal.

no, mostmár lehet fikázni
:)