Portál AbcLinuxu, 1. května 2025 01:40
Na jednom serveru potřebujeme hlídat velikost logů zda nerostou moc nad obvyklé meze. Nechci je rotovat po dosažení nějaké velioksti, chci jen vědět, že se děje nějaká neplecha.
#!/bin/bash DIRECTORY=/logy WARNSIZE=1024 CRITSIZE=2048 STATE_OK=0 # define the exit code if status is OK STATE_WARNING=1 # define the exit code if status is Warning (not really used) STATE_CRITICAL=2 # define the exit code if status is Critical STATE_UNKNOWN=3 # define the exit code if status is Unknown PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin for cmd in find stat [ do if ! `which ${cmd} 1>/dev/null` then echo "UNKNOWN: ${cmd} does not exist, please check if command exists and PATH is correct" exit ${STATE_UNKNOWN} fi done RESULT="" ERROR=0 WARNING=0 [ -d $DIRECTORY ] || exit ${STATE_OK} while read fname; do size=$(($(stat --format=%s "${fname}")/1024/1024)) RESULT="${RESULT}${fname#$DIRECTORY} ${size} MiB, " if [ ${size} -gt $CRITSIZE ]; then ERROR=1 elif [ ${size} -gt $WARNSIZE ]; then WARNING=1 fi done < <(find ${DIRECTORY} -type f -size +${WARNSIZE}M -not -name '*.gz') if [ $ERROR -gt 0 ]; then echo "ERROR: ${RESULT}" exit ${STATE_CRITICAL} elif [ $WARNING -gt 0 ]; then echo "WARNING: ${RESULT}" exit ${STATE_WARNING} else echo "OK: vsechny logy jsou mensi nez ${WARNSIZE} MiB" exit ${STATE_OK} fi
Zápisek je také publikován na mém novém blogu: blog.bcvsolutions.eu
Tiskni
Sdílej:
potřebujeme hlídat velikost logů zda nerostou moc nad obvyklé meze
Logwatch ti nepošle notifikace.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.