Debian szerver napi jelentés (Stretch)

A AdminWiki wikiből

A napi jelentés a /etc/cron.daily alatti scriptek lefuttatásának kimenete. Az alaptelepítés által itt elhelyezett scriptek nagyon szűkszavúak, normális esetben semmilyen kimenetet nem adnak. Érdemes lehet néhány általános jelentéskészítő scriptet ide elhelyezni.

Megjegyzés: azt hiszem, a Debianban azért nincsenek napi jelentő scriptek, mert a fejlesztők filozófiája szerint az eseményekről azonnali értesítést kell kapni, ennélfogva a napi jelentés felesleges. Másfelől engem megnyugtat, ha naponta kapok a szerverektől egy "kösz, jól vagyok" levelet :-)

Tartalomjegyzék

RAID állapot

Az mdadm szól ugyan, ha szétesik egy RAID, de csak egyszer. Az alábbi script viszont naponta...

touch /etc/cron.daily/raidstatus
chmod 755 /etc/cron.daily/raidstatus
mcedit /etc/cron.daily/raidstatus
-rwxr-xr-x root root /etc/cron.daily/raidstatus

#!/bin/bash
# Cron job to check that raid devices are functional.
# On error cron will mail the faulty mdstat to root.
#   raid1.c and raid5.c list devices as U (operational) or _ (not)
#   a _ device may be either hot, standby or bad
# Merlin Hughes <merlin@merlin.org>
# Modified by <kovacs.zoltan@kzoli.hu>

[ -e /proc/mdstat ] || exit 0

mdstat=`cat /proc/mdstat`

echo -e "\nRAID status:"
# Underscore between square brackets shows a faulty disk
if echo "$mdstat" | grep -q -e '\(\[.*_.*\]\)'; then
    echo 'WARNING: Some disks in your RAID arrays seem to have failed!'
    echo 'Below is the content of /proc/mdstat:'
    echo
    echo -e "$mdstat"
else
    echo "RAID is OK."
fi

Tárhely foglaltság

Ez fontos, ezt ugyanis semmilyen más eszköz nem figyeli.

touch /etc/cron.daily/status-disks
chmod 755 /etc/cron.daily/status-disks
mcedit /etc/cron.daily/status-disks
-rwxr-xr-x root root /etc/cron.daily/status-disks

#!/bin/bash
#
# Simple stats from disk usage

echo -e "\nDisk status:"
/bin/df -kh | /bin/grep -ve '^tmpfs'

Kézbesítetlen e-mail üzenetek

Hasznos lehet a napi jelentésben listát kapni a kézbesítetlen e-mail üzenetekről. Az alábbi script egyben törli a frozen double bounce üzeneteket is (ld. pl. itt):

touch  /etc/cron.daily/exim4-frozen
chmod 755 /etc/cron.daily/exim4-frozen
mcedit /etc/cron.daily/exim4-frozen
-rwxr-xr-x root root /etc/cron.daily/exim4-frozen

#!/bin/bash

AWK="/usr/bin/awk"
EXIM4="/usr/sbin/exim4"
GREP="/bin/grep"
WC="/usr/bin/wc"
XARGS="/usr/bin/xargs"

# List of really frozen e-mail messages
if [ ! -z "$($EXIM4 -bp)" ]; then
    # Deleting frozen double bounces (<> messages)
    echo -ne "Frozen bounces deleted: "
    $EXIM4 -bpru | \
        $GREP '<>' | \
        $AWK {'print $3'} |  \
        $XARGS $EXIM4 -Mrm 2>/dev/null | \
        $WC -l
    # Listing really frozens
    echo -ne "Frozen e-mail messages:\n\n"
    $EXIM4 -bp
fi

Tanúsítványok állapota

Az alábbi, innen származó scriptek ellenőrzik a szervergép meglévő SSL tanúsítványait és figyelmeztető levelet küldenek, ha a következő 30 napban valamelyik lejárna.

# Az ellenőrző script letöltése
wget 'http://howto.biapy.com/fr/debian-gnu-linux/serveurs/http/mettre-en-place-une-notification-par-email-de-l-expiration-des-certificats-ssl-tls/ssl-cert-check/at_download/file' \
--no-check-certificate --output-document='/usr/local/bin/ssl-cert-check'
chmod 755 /usr/local/bin/ssl-cert-check

# A tanúsítványokat megkereső és az előzőt meghívó, ütemező script letöltése és egy hibajavítás
wget -q -O- --no-check-certificate 'http://howto.biapy.com/fr/debian-gnu-linux/serveurs/http/mettre-en-place-une-notification-par-email-de-l-expiration-des-certificats-ssl-tls/check-active-certs/at_download/file' |\
sed "s/ grep -r/ grep -R/g" >/etc/cron.daily/check-active-certs
chmod 755 /etc/cron.daily/check-active-certs

Minthogy még nincs szerver oldali tanúsítvány telepítve, a naponta lefutó script nem csinál semmit, de amint SSL-t használó szolgáltatást telepítünk, észre fogja venni és teszi a dolgát.

Uptime

Inkább csak hagyományból, opcionálisan referált paraméter.

touch /etc/cron.daily/uptime-info
chmod 755 /etc/cron.daily/uptime-info
mcedit /etc/cron.daily/uptime-info
-rwxr-xr-x root root /etc/cron.daily/uptime-info

#!/bin/bash

echo
/usr/bin/uptime