99 lines
2.4 KiB
Bash
Executable File
99 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
## ## ## ## ## ## ## ## ##
|
|
## ##
|
|
## jabber ping bot ##
|
|
## ##
|
|
## v0.1 ##
|
|
## ##
|
|
## author: david@socialnerds.org ##
|
|
## ##
|
|
## ## ## ## ## ## ## ## ##
|
|
|
|
|
|
## timestamp for logfile
|
|
timestamp=$(date '+%d %B %Y %H:%M')
|
|
echo "info: starting jabber ping 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/ping.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
|
|
|
|
## run the actual ping
|
|
set -- $dest
|
|
|
|
for var in "$@"
|
|
do
|
|
#result=$(ping -c 05 $var | grep transmitted | awk '{print $4}')
|
|
ping -c 03 $var >/dev/null 2>&1
|
|
errorcode=$?
|
|
if [ $errorcode = "0" ]; then
|
|
echo "info: $var is responding"
|
|
else
|
|
if [ $errorcode = "1" ]; then
|
|
echo "alert: $var is not responding"
|
|
## sending jabber message
|
|
echo "alert: $var is not responding
|
|
ping errorcode: $errorcode" | sendxmpp -r $res $watchdogs
|
|
else
|
|
if [ $errorcode = "2" ]; then
|
|
echo "alert: $var cannot be resolved"
|
|
## sending jabber message
|
|
echo "alert: $var cannot be resolved
|
|
ping errorcode: $errorcode" | sendxmpp -r $res $watchdogs
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
|
|
## the end
|
|
exit 0
|
|
|