| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #!/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' | 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]"
|