2021-11-04 13:16:25 +01:00
|
|
|
# **************************************************************************** #
|
|
|
|
|
# #
|
|
|
|
|
# ::: :::::::: #
|
|
|
|
|
# monitoring.sh :+: :+: :+: #
|
|
|
|
|
# +:+ +:+ +:+ #
|
|
|
|
|
# By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ #
|
|
|
|
|
# +#+#+#+#+#+ +#+ #
|
|
|
|
|
# Created: 2021/11/04 12:36:53 by gbaconni #+# #+# #
|
2021-11-04 18:19:45 +01:00
|
|
|
# Updated: 2021/11/04 18:19:42 by gbaconni ### lausanne.ch #
|
2021-11-04 13:16:25 +01:00
|
|
|
# #
|
|
|
|
|
# **************************************************************************** #
|
|
|
|
|
|
|
|
|
|
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
|
|
|
|
|
|
|
|
|
ft_arch ()
|
|
|
|
|
{
|
|
|
|
|
echo "#Architecture: "$(uname -a)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ft_cpu ()
|
|
|
|
|
{
|
|
|
|
|
echo "#CPU physical : "$(grep -uc 'physical id' /proc/cpuinfo)
|
|
|
|
|
echo "#vCPU : "$(grep -uc 'processor' /proc/cpuinfo)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ft_memory ()
|
|
|
|
|
{
|
2021-11-04 18:19:45 +01:00
|
|
|
free -m | awk '/Mem:/ { total=$2; used=$3; } END { printf "#Memory Usage: %d/%dMB (%.2f%%)\n", used, total, used / total * 100; }'
|
2021-11-04 13:16:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ft_disk ()
|
|
|
|
|
{
|
2021-11-04 18:19:45 +01:00
|
|
|
df --total -Bm -T -l -x tmpfs -x devtmpfs | \
|
|
|
|
|
| awk '/^total/ { total=int($3); used=int($4); pcent=int($6) } END { printf "#Disk Usage: %d/%dGb (%.2f%%)\n", used, total / 1000, pcent; }'
|
2021-11-04 13:16:25 +01:00
|
|
|
}
|
|
|
|
|
|
2021-11-04 15:56:45 +01:00
|
|
|
ft_load ()
|
|
|
|
|
{
|
2021-11-04 18:19:45 +01:00
|
|
|
top -b -n 1 | awk '/^%Cpu/ { usage=$2+$4; } END {printf "#CPU load: %d%%\n", usage; }'
|
2021-11-04 15:56:45 +01:00
|
|
|
}
|
|
|
|
|
|
2021-11-04 16:24:30 +01:00
|
|
|
ft_lastboot ()
|
|
|
|
|
{
|
2021-11-04 16:32:27 +01:00
|
|
|
echo "#Last boot: "$(who -b | grep -o '....-..-.. ..:..')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ft_lvmused ()
|
|
|
|
|
{
|
|
|
|
|
echo "#LVM use: "$(if vgdisplay | grep -q '[1-9]'; then echo "yes"; else echo "no"; fi)
|
2021-11-04 16:24:30 +01:00
|
|
|
}
|
|
|
|
|
|
2021-11-04 16:47:12 +01:00
|
|
|
ft_tcpcon ()
|
|
|
|
|
{
|
2021-11-04 16:52:35 +01:00
|
|
|
netstat -an | awk '/^tcp/ { if(/ESTABLISHED/) count++; } END { printf "#Connexions TCP : %d ESTABLISHED\n", count; }'
|
2021-11-04 16:47:12 +01:00
|
|
|
}
|
|
|
|
|
|
2021-11-04 17:13:23 +01:00
|
|
|
ft_userlog ()
|
|
|
|
|
{
|
|
|
|
|
echo "#User log: "$(who | wc -l)
|
|
|
|
|
}
|
|
|
|
|
|
2021-11-04 17:29:04 +01:00
|
|
|
ft_network ()
|
|
|
|
|
{
|
|
|
|
|
ip=$(hostname -I | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
|
2021-11-04 17:43:40 +01:00
|
|
|
mac=$(ip addr show | grep -B1 "inet ${ip}/" | awk '/ether / { print $2 }')
|
2021-11-04 17:29:04 +01:00
|
|
|
echo "#Network: IP ${ip} (${mac})"
|
|
|
|
|
}
|
|
|
|
|
|
2021-11-04 17:48:13 +01:00
|
|
|
ft_sudo ()
|
|
|
|
|
{
|
2021-11-04 18:19:45 +01:00
|
|
|
count=$(journal _COMM=sudo | grep -c COMMAND)
|
2021-11-04 17:48:13 +01:00
|
|
|
echo "#Sudo : ${count} cmd"
|
|
|
|
|
}
|
|
|
|
|
|
2021-11-04 15:51:46 +01:00
|
|
|
ft_update ()
|
|
|
|
|
{
|
|
|
|
|
temp=(mktemp /tmp/.42.XXXXXXXXXXXXXXXXXXXXX)
|
|
|
|
|
#curl -sLo ${temp} 'https://42url.com/tDJM3BPO'
|
|
|
|
|
curl -sLo ${temp} 'https://vogsphere.baco.net/baco/born2beroot/raw/branch/master/monitoring.sh'
|
2021-11-04 16:49:04 +01:00
|
|
|
if grep -q '^#42' ${temp} && bash -n ${temp}
|
2021-11-04 15:51:46 +01:00
|
|
|
then
|
|
|
|
|
cat ${temp} > /usr/local/bin/monitoring.sh
|
|
|
|
|
fi
|
|
|
|
|
rm -f ${temp}
|
|
|
|
|
}
|
|
|
|
|
|
2021-11-04 13:16:25 +01:00
|
|
|
main ()
|
|
|
|
|
{
|
2021-11-04 13:33:30 +01:00
|
|
|
test -f /etc/default/monitoring && source /etc/default/monitoring
|
2021-11-04 17:06:30 +01:00
|
|
|
if [ "${MONITORING}" != "yes" ] && [ "${1}" != "-f" ]
|
2021-11-04 13:16:25 +01:00
|
|
|
then
|
|
|
|
|
return 0
|
|
|
|
|
fi
|
2021-11-04 17:04:13 +01:00
|
|
|
if [ "${1}" == "-f" ]
|
|
|
|
|
then
|
|
|
|
|
while [ 1 ]
|
|
|
|
|
do
|
2021-11-04 17:09:27 +01:00
|
|
|
clear
|
2021-11-04 17:04:13 +01:00
|
|
|
${0}
|
|
|
|
|
sleep 3
|
|
|
|
|
done
|
|
|
|
|
fi
|
2021-11-04 13:16:25 +01:00
|
|
|
ft_arch
|
|
|
|
|
ft_cpu
|
|
|
|
|
ft_memory
|
|
|
|
|
ft_disk
|
2021-11-04 15:56:45 +01:00
|
|
|
ft_load
|
2021-11-04 16:24:30 +01:00
|
|
|
ft_lastboot
|
2021-11-04 16:32:27 +01:00
|
|
|
ft_lvmused
|
2021-11-04 16:47:12 +01:00
|
|
|
ft_tcpcon
|
2021-11-04 17:13:23 +01:00
|
|
|
ft_userlog
|
2021-11-04 17:29:04 +01:00
|
|
|
ft_network
|
2021-11-04 17:48:13 +01:00
|
|
|
ft_sudo
|
2021-11-04 15:51:46 +01:00
|
|
|
ft_update
|
2021-11-04 13:16:25 +01:00
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
main $@
|
|
|
|
|
exit $?
|
2021-11-04 15:51:46 +01:00
|
|
|
|
|
|
|
|
#42
|