#! /bin/bash M2_ARG="$@" M2_ARG_ONE="$1" M2_ARG_TWO="$1 $2" COMMAND="" COMMAND_FILE=/tmp/m2/m2_command FREERADIUS_VERSION=$(cat /etc/m2/system.conf | grep freeradius_version | awk '{print $3}') # in case this directory does not exists mkdir -p /tmp/m2/m2_core_command_result chmod 777 -R /tmp/m2/m2_core_command_result echo "" > $COMMAND_FILE if [ "$M2_ARG" == "show log" ]; then echo "" echo "Press CTRL + C to exit..." echo "" color=' /NOTICE/ {print "\033[m" $0 "\033[0m"} /DEBUG/ {print "\033[38;5;114m" $0 "\033[0m"} /WARNING/ {print "\033[1;33m" $0 "\033[0m"} /ERROR/ {print "\033[1;31m" $0 "\033[0m"} /DEVEL/ {print "\033[38;5;105m" $0 "\033[0m"} ' tail -f /var/log/radius/radius.log | awk "$color" exit 0 fi if [ "$M2_ARG" == "show calls" ]; then COMMAND=m2_show_calls fi if [ "$M2_ARG" == "show users" ]; then COMMAND=m2_show_users fi if [ "$M2_ARG" == "show dp" ]; then COMMAND=m2_show_dp fi if [ "$M2_ARG" == "show opcache" ]; then COMMAND=m2_show_opcache fi if [ "$M2_ARG_ONE" == "triebranch" ]; then COMMAND=m2_triebranch fi if [ "$M2_ARG" == "meter reset" ]; then COMMAND=m2_meter_reset fi if [ "$M2_ARG" == "triettlreset" ]; then COMMAND=m2_triettlreset fi if [ "$M2_ARG" == "show status" ]; then COMMAND=m2_show_status fi if [ "$M2_ARG" == "show db stats" ]; then COMMAND=m2_show_db_stats fi if [ "$M2_ARG" == "reload" ]; then # Check if only single radius is running # If there are more than one radius running, then do not allow m2 reload as it causes radius to crash RADIUS_COUNT=`ps -A | grep -v safe | grep radius | wc -l` if [ $RADIUS_COUNT -gt 1 ]; then echo "Multiple Radius instances are running (possible M2 core recompile is still active)!" echo "Cannot execute m2 reload command" exit 1 fi COMMAND=m2_reload fi if [ "$M2_ARG_ONE" == "logger" ]; then COMMAND=m2_logger fi if [ "$M2_ARG_ONE" == "stop" ]; then COMMAND=m2_stop fi if [ "$M2_ARG" == "report date" ]; then COMMAND=m2_report_date fi if [ "$M2_ARG" == "show active calls" ]; then COMMAND=m2_show_active_calls fi if [ "$M2_ARG_TWO" == "show call" ]; then COMMAND=m2_show_call fi if [ "$M2_ARG_TWO" == "hangup call" ]; then COMMAND=m2_hangup_call fi if [ "$M2_ARG_TWO" == "number_pool reset" ]; then COMMAND=m2_number_pool_reset fi if [ "$COMMAND" == "" ]; then echo "Wrong command: $M2_ARG" exit 1 fi echo "Acct-Status-Type = Stop" >> $COMMAND_FILE echo "Acct-Session-Id = \"6900ccc3-af7f-4cbf-abfc-0d5a64521f5e\"" >> $COMMAND_FILE echo "User-Name = \"m2_command: $M2_ARG\"" >> $COMMAND_FILE echo "NAS-Port = 0" >> $COMMAND_FILE echo "Acct-Delay-Time = 0" >> $COMMAND_FILE echo "NAS-IP-Address = 127.0.0.1" >> $COMMAND_FILE /usr/local/bin/radclient -r 1 -t 3 localhost:1813 acct m2 -f $COMMAND_FILE 1> /dev/null cat /tmp/m2/m2_core_command_result/$COMMAND echo "" > /tmp/m2/m2_core_command_result/$COMMAND rm -fr $COMMAND_FILE