checkvpn.sh 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/bin/bash
  2. #########################################################################
  3. # Check VPN connection including users #
  4. # Created by DoIT-PM #
  5. # ver 0.2 #
  6. #########################################################################
  7. #---------------------------- VARIABLES --------------------------------#
  8. BDA="23"
  9. TIM=$(date +%H)
  10. DAY=$(date +%d)
  11. DAB=$(date +%y%m%d)
  12. DAT=$(date +%b" "%_d)
  13. WEB="/opt/librenms/html/admin/vpn"
  14. test -f /var/log/messages && LOG="/var/log/messages"
  15. test -f /var/log/syslog && LOG="/var/log/syslog"
  16. REP="/tmp/vpn.rep"
  17. test -d $WEB || mkdir $WEB
  18. test -f $REP && rm -rf $REP
  19. #---------------------------- COLLECTION -------------------------------#
  20. collect(){
  21. echo -e "- \e[1;32mExtracting\e[0m data from [\e[1;33m$DAT\e[0m]"
  22. echo "-------- ---------------- ------------ ----------------" > $REP
  23. echo "TIME VPN-PROFILE USER-NAME IP-ADDRESS" >> $REP
  24. echo "-------- ---------------- ------------ ----------------" >> $REP
  25. cat $LOG | grep "$DAT" | grep "ASA-6-113039" | awk '{print $3,$8,$10,$12}' | sed 's/</ /g' | sed 's/>/ /g' >> $REP
  26. echo "-------- ---------------- ------------ ----------------" >> $REP
  27. }
  28. #----------------------------- BIG-DATA --------------------------------#
  29. bigdata(){
  30. if [ "$TIM" -eq "$BDA" ];
  31. then
  32. echo -e "- \e[1;32mAdding\e[0m day data to BigData"
  33. cat $REP | grep "^[0-9]" > $WEB/vpn.tmp
  34. sed -i "s/^/$DAB /" $WEB/vpn.tmp
  35. cat $WEB/vpn.tmp >> $WEB/vpn.rep
  36. echo "------ -------- ---------------- ------------ ----------------" > $WEB/vpn.clr
  37. echo "DATE TIME VPN-PROFILE USER-NAME IP-ADDRESS" >> $WEB/vpn.clr
  38. echo "------ -------- ---------------- ------------ ----------------" >> $WEB/vpn.clr
  39. cat $WEB/vpn.rep | awk '!seen[$0]++' | sort >> $WEB/vpn.clr
  40. echo "------ -------- ---------------- ------------ ----------------" >> $WEB/vpn.clr
  41. cat $WEB/vpn.clr | column -t > $WEB/vpn.txt
  42. else
  43. echo -e "- \e[1;31mNOT\e[0m right time for updating BigData"
  44. fi
  45. }
  46. #------------------------------- CORE ----------------------------------#
  47. clear
  48. collect
  49. bigdata
  50. cat $REP | column -t
  51. USR=$(cat $REP | awk '{print $3}' | egrep -v "USER|\---" | sort | uniq | wc -l)
  52. VPN=$(cat $REP | egrep -v "USER|\---" | sort | wc -l)
  53. echo -e "- Summary today VPN access: [\e[1;33m$VPN\e[0m]"
  54. echo -e "- Unique today VPN users: [\e[1;33m$USR\e[0m]"
  55. echo -e "- Report summary: [\e[1;35m$WEB/vpn.txt\e[0m]"