david/scripts-archive
david
/
scripts-archive
Archived
1
0
Fork 0
This repository has been archived on 2022-04-16. You can view files and clone it, but cannot push or open issues or pull requests.
scripts-archive/df_bot.sh

121 lines
2.6 KiB
Bash

#!/bin/bash
###################################################
## ##
## disk_free monitoring bot ##
## ##
###################################################
# **** in script config section ****
version="0.3_alpha"
author="david@socialnerds.org"
logwhat="df_bot"
# **** configfile section ****
disks="sda1"
thresholds="90"
bashlibpath="/home/david/Documents/code/bashlib"
# logging
loglevel="4"
log2syslog="1"
log2file="0"
#logfile="/var/log/mbots.log"
log2stdout="1"
# **** bash trap initialisation ****
trap bashtrap INT
# **** load bashlib ****
if [ -d $bashlibpath ]; then
source $bashlibpath/main
#source $bashlibpath/update
source $bashlibpath/logengine
log debug "preflight - bashlib loaded"
else
echo "ERROR: bashlib not found"
exit 1
fi
exit 0
## timestamp for logfile
#timestamp=$(date '+%d %B %Y %H:%M')
#echo "info: starting df bot $timestamp"
## check if sendxmpp is installed
#if [ $(aptitude search sendxmpp | awk '{print $1}') = "i" ]; then
# echo "info: sendxmpp found"
#else
# if [ $(whoami) = "root" ]; then
# apt-get install sendxmpp
# else
# echo "error: permission denied"
# echo "info: install sendxmpp or run this scrip as superuser"
# exit 1
# fi
#fi
## set and load configfile
#if [ -z $1 ]; then
# configfile="/etc/mobots/df.conf"
# if [ -f $configfile ]; then
# source $configfile
# else
# echo "error: no config file $configfile"
# exit 1
# fi
#else
# configfile=$1
# if [ -f $configfile ]; then
# source $configfile
# else
# echo "error: no config file $configfile"
# exit 1
# fi
#fi
## check sendxmpp config
#if [ -f ~/.sendxmpprc ]; then
# echo "info: jabber config found in ~/.sendxmpprc"
#else
#
# if [ -z $port ]; then
# port="5222"
# else
# echo "info: using port $port"
# fi
#
# echo "$user@$server:$port $pass" > ~/.sendxmpprc
# chmod 600 ~/.sendxmpprc
# echo "info: created sendxmpp config in ~/.sendxmpprc"
#fi
## check disks
set -- $disks
i="1"
for var in "$@"
do
data=$(df -Ph | grep $var | sed -e 's/%//g' | awk '{print $5}')
datathreshold=$(echo $thresholds | awk '{print $'$i'}')
if [ $data -gt $datathreshold ]; then
echo "info: $var reached threshold with $data%, sending notification to $watchdogs"
echo "$hostname: $var is running out of space: $data%" | sendxmpp -r dfbot $watchdogs
fi
let i++
done
## exiting
#echo "info: done"
exit 0
# **** end of script ****