ServerBot/bot.sh

98 lines
2.0 KiB
Bash
Raw Normal View History

2019-05-02 20:41:03 +02:00
#!/bin/bash
# the main bot script
2019-05-24 16:15:25 +02:00
# change dir
cd "$( dirname "${BASH_SOURCE[0]}" )"
echo "pwd: "
pwd
2019-05-10 02:23:32 +02:00
. config.sh
2019-09-16 13:20:14 +02:00
#. func.sh
msg="a"
ident="" # variable to identify changes in the problems
2019-05-10 01:30:30 +02:00
2019-05-02 20:41:03 +02:00
#hdd usage
. hdd.sh
used=$(hddUsage)
2019-05-10 02:23:32 +02:00
if [ "$used" -gt "$hddlimit" ]; then
2019-09-16 13:20:14 +02:00
echo "HDD warn!"
hddTop=$(hddTop)
2019-09-16 13:20:14 +02:00
printf -v msg '%b\n\nwarnung server used %b%% of the storage\n%b' "${msg}" "$used" "$hddTop"
ident="$ident:hdd"
2019-05-02 20:41:03 +02:00
fi
2019-07-07 11:04:21 +02:00
unset -f hddTop
unset -f hddUsage
2019-05-10 01:30:30 +02:00
#services
. services.sh
2019-05-10 02:23:32 +02:00
notrunning=$(checkServices "$services")
2019-05-10 01:30:30 +02:00
if [ "$notrunning" != "" ]; then
echo "Serive warn!"
2019-09-16 13:20:14 +02:00
printf -v msg '%b\n\nwarnung the following services are not running\n%b' "${msg}" "$notrunning"
ident="$ident:$notrunning"
2019-05-10 01:30:30 +02:00
fi
2019-07-07 11:04:21 +02:00
unset -f checkServices
2019-05-10 02:23:32 +02:00
2019-05-10 20:01:51 +02:00
#cpu usage
2019-05-10 02:23:32 +02:00
. cpu.sh
cpu=$(cpuUsage)
if [ "$cpu" -gt "$cpulimit" ]; then
echo "cpu limit!"
proc=$(cpuTop)
2019-09-16 13:20:14 +02:00
printf -v msg '%b\n\nwarnung CPU Usage is high %b%%\n%b' "${msg}" "$cpu" "$proc"
ident="$ident:cpu"
2019-05-10 02:23:32 +02:00
fi
2019-07-07 11:04:21 +02:00
unset -f cpuUsage
unset -f cpuTop
2019-05-10 20:01:51 +02:00
#mem usage
. mem.sh
mem=$(memUsage)
if [ "$mem" -gt "$memlimit" ]; then
echo "mem limit!"
proc=$(memTop)
2019-09-16 13:20:14 +02:00
printf -v msg '%b\n\nwarnung Memory Usage is high %b%%\n%b' "${msg}" "$mem" "$proc"
ident="$ident:mem"
2019-05-10 20:01:51 +02:00
fi
2019-07-07 11:04:21 +02:00
unset -f memUsage
unset -f memTop
2019-05-10 20:01:51 +02:00
2019-05-19 03:57:33 +02:00
#CheckCerts
. cert.sh
checkCert "/etc/letsencrypt/live/mrbesen.de/cert.pem"
if [ "$?" -gt "0" ]; then
echo "cert expired!"
2019-09-16 13:20:14 +02:00
printf -v msg '%b\n\nwarnung cert expires soon' "${msg}"
ident="$ident:cert"
2019-05-19 03:57:33 +02:00
fi
2019-07-07 11:04:21 +02:00
unset -f checkCert
2019-09-16 13:20:14 +02:00
2021-08-11 15:54:41 +02:00
#check availablitiy of "forbidden" ports
curl 'http://mrbesen.de:9999' --output - -s > /dev/null
if [ "$?" -eq "0" ]; then
echo "9999 public!"
printf -v msg '%b\n\nport 9999 public iptable reules broken?' "${msg}"
ident="$ident:firewall"
fi
# check for new coredumps
. coredumps.sh
checkCoreDump
if [ "$?" -ne "0" ]; then
echo "new coredump"
printf -v msg '%b\n\nnew coredump' "${msg}"
ident="$ident:coredump"
fi
unset -f checkCoreDump
2019-09-16 13:20:14 +02:00
. func.sh
if [[ "${#msg}" -gt "1" ]]; then
#remove prepend
msg=$(echo "$msg" | tail -n +3)
send "$ident" "$msg"
else
resetFile
fi