#!/bin/bash ######################################################################### # Check VPN connection including users # # Created by DoIT-PM # # ver 0.2 # ######################################################################### #---------------------------- VARIABLES --------------------------------# BDA="23" TIM=$(date +%H) DAY=$(date +%d) DAB=$(date +%y%m%d) DAT=$(date +%b" "%_d) WEB="/opt/librenms/html/admin/vpn" test -f /var/log/messages && LOG="/var/log/messages" test -f /var/log/syslog && LOG="/var/log/syslog" REP="/tmp/vpn.rep" test -d $WEB || mkdir $WEB test -f $REP && rm -rf $REP #---------------------------- COLLECTION -------------------------------# collect(){ echo -e "- \e[1;32mExtracting\e[0m data from [\e[1;33m$DAT\e[0m]" echo "-------- ---------------- ------------ ----------------" > $REP echo "TIME VPN-PROFILE USER-NAME IP-ADDRESS" >> $REP echo "-------- ---------------- ------------ ----------------" >> $REP cat $LOG | grep "$DAT" | grep "ASA-6-113039" | awk '{print $3,$8,$10,$12}' | sed 's// /g' >> $REP echo "-------- ---------------- ------------ ----------------" >> $REP } #----------------------------- BIG-DATA --------------------------------# bigdata(){ if [ "$TIM" -eq "$BDA" ]; then echo -e "- \e[1;32mAdding\e[0m day data to BigData" cat $REP | grep "^[0-9]" > $WEB/vpn.tmp sed -i "s/^/$DAB /" $WEB/vpn.tmp cat $WEB/vpn.tmp >> $WEB/vpn.rep echo "------ -------- ---------------- ------------ ----------------" > $WEB/vpn.clr echo "DATE TIME VPN-PROFILE USER-NAME IP-ADDRESS" >> $WEB/vpn.clr echo "------ -------- ---------------- ------------ ----------------" >> $WEB/vpn.clr cat $WEB/vpn.rep | awk '!seen[$0]++' | sort >> $WEB/vpn.clr echo "------ -------- ---------------- ------------ ----------------" >> $WEB/vpn.clr cat $WEB/vpn.clr | column -t > $WEB/vpn.txt else echo -e "- \e[1;31mNOT\e[0m right time for updating BigData" fi } #------------------------------- CORE ----------------------------------# clear collect bigdata cat $REP | column -t USR=$(cat $REP | awk '{print $3}' | egrep -v "USER|\---" | sort | uniq | wc -l) VPN=$(cat $REP | egrep -v "USER|\---" | sort | wc -l) echo -e "- Summary today VPN access: [\e[1;33m$VPN\e[0m]" echo -e "- Unique today VPN users: [\e[1;33m$USR\e[0m]" echo -e "- Report summary: [\e[1;35m$WEB/vpn.txt\e[0m]"