Debian szerver napi jelentés (Wheezy)
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@mimoza.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, except mounted CD images echo -e "\nDisk status:" /bin/df -kh | /bin/grep -v "cdimages"
A cdimages kiszűrése történelmi maradvány :-) a részemről...
FSCK időzítések
A Debian az ext2/3 fájlrendszerek konzisztenciájának periodikus ellenőrzése és szükség szerinti megjavításuk érdekében kb. 180 naponta illetve kb. 30 felcsatolás után a következő rendszerindításkor automatikus fájlrendszer ellenőrzést (fsck) végez akkor is, ha a fájlrendszer egyébként "tiszta". Nagy (terabyte-os) partíciók esetén a művelet órákig elhúzódhat, ezért nem mindegy, hogy erre mikor kerül sor. Az alábbi script listázza az egyes partíciók következő ellenőrzésig hátralévő idejét illetve felcsatolás számát, így kevésbé ér bennünket váratlanul az automatikus FSCK.
A scriptet nem kell (de nem hiba) telepíteni, ha nincs ext2/3 fájlrendszerünk (a Wheezyben az alapértelmezett fájlrendszer az ext4, ennél a periodikus ellenőrzés alapértelmezetten nincs beállítva).
touch /etc/cron.daily/status-fsck chmod 755 /etc/cron.daily/status-fsck mcedit /etc/cron.daily/status-fsck
-rwxr-xr-x root root /etc/cron.daily/status-fsck #!/bin/bash # # Shows auto-FSCK schedule info about mounted ext2/3/4 filesystems. # Author: <kovacs.zoltan@kzoli.hu> 2013-03-13 # Licensed under GNU/GPL v3+ - see: http://www.gnu.org/copyleft/gpl.html LANG="C" # English output to parse DATE="/bin/date" # date command call EGREP="/bin/egrep" # egrep command call GREP="/bin/grep" # grep command call MOUNT="/bin/mount" # mount command call SED="/bin/sed" # sed command call SORT="/usr/bin/sort" # sort command call TUNE2FS="/sbin/tune2fs" # tune2fs command call # Getting mounted, extN type filesystems' list. $MOUNT | $GREP 'type ext' | $SORT | while read fsline do # Getting filesystem parameters via tune2fs. fsdevice=$(echo "$fsline" | /usr/bin/cut -d ' ' -f1-3) fsparams=$($TUNE2FS -l $(echo $fsdevice | /usr/bin/cut -d ' ' -f1)) fs_status=$(echo -e "$fsparams" | $GREP "Filesystem state:" | $SED "s/^[^:]*:[[:space:]]*//") fs_count=$(echo -e "$fsparams" | $GREP "Mount count:" | $SED "s/^[^:]*:[[:space:]]*//") fs_maxcount=$(echo -e "$fsparams" | $GREP "Maximum mount count:" | $SED "s/^[^:]*:[[:space:]]*//") fs_lastdate=$(echo -e "$fsparams" | $GREP "Last checked:" | $SED "s/^[^:]*:[[:space:]]*//") fs_lastdate=$($DATE --date="$fs_lastdate" '+%Y-%m-%d') # Calculating FSCK schedule by date. fs_nextdate=$(echo -e "$fsparams" | $GREP "Next check after:" | $SED "s/^[^:]*:[[:space:]]*//") if [ -z "$fs_nextdate" ]; then fs_nextdate="schedule disabled" else fs_nextutc=$($DATE --date="$fs_nextdate" '+%s') fs_nextdate="$($DATE --date="$fs_nextdate" '+%Y-%m-%d') ($(( ($fs_nextutc - $($DATE '+%s')) / 86400 )) days)" fi # Calculating FSCK schedule by mounts. mounts2fsck="count disabled" if [[ $fs_maxcount > 0 ]]; then mounts2fsck="$(( $fs_maxcount - $fs_count )) left"; fi # Formatted output. echo -e "$fsdevice \n$fs_status \t$fs_lastdate \t$fs_count mounts ($mounts2fsck) \t$fs_nextdate" done
Kézbesítetlen e-mail üzenetek
Hasznos lehet a napi jelentésben listát kapni a kézbesítetlen e-mail üzenetekről:
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' \ --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- '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
Hogy legyen mivel dicsekedni :-)...
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