#! /bin/bash # Author: Mindaugas Mardosas, Nerijus Sapola # Company: Kolmisoft # Year: 2012 # About: MOR Billing platform settings reading/writing framework #TODO: make oen bash_functions.sh both for c6 and c7 centos_version=$(grep -o "[0-9]" /etc/redhat-release | head -n 1) #rocky=`cat /etc/redhat-release | grep Rocky | wc -l` if ((centos_version <7 )); then . /usr/src/mor/framework/bash_functions.sh else . /usr/src/mor/framework/bash_functions_c7.sh fi settings_config_file="/etc/mor/system.conf" read_mor_binlog_setting() { # Author: Mindaugas Mardosas, Nerijus Sapola # Year: 2012 # About: This function checks if binlog is configured by administrator to be enabled on this system # # Returns: # 0 - NO, MySQL binlog should not be enabled on this server # 1 - YES, MySQL binlog has to be enabled on this server # # Also returns a global variable BINLOG_SETTING which can be used later in scripts to check if MySQL binlog has to enabled if [ -f $settings_config_file ] && [ `awk -F"#" '{print \$1}' $settings_config_file | grep BINLOG | wc -l` == 1 ]; then BINLOG_SETTING=`awk -F"#" '{print \$1}' $settings_config_file | grep "BINLOG=1" | wc -l` fi return $BINLOG_SETTING } read_mor_replication_settings() { # Author: Mindaugas Mardosas, Nerijus Sapola # Year: 2012 # About: This function reads replication settings # # Returns: # REPLICATION_M - {0 - disabled; 1 - enabled} # REPLICATION_S - {0 - disabled; 1 - enabled} # DB_MASTER_MASTER - {"yes", "no" } # DB_SLAVE - {"yes", "no" } # REPLICATION_PRESENT - { "yes", "no" } if [ -f $settings_config_file ] && [ `awk -F"#" '{print \$1}' $settings_config_file | grep "REPLICATION_M\|REPLICATION_S" | wc -l` == "2" ]; then REPLICATION_M=`awk -F"#" '{print $1}' $settings_config_file | grep REPLICATION_M | awk -F"=" '{print $2}'` REPLICATION_S=`awk -F"#" '{print $1}' $settings_config_file | grep REPLICATION_S | awk -F"=" '{print $2}'` fi #===================DB_MASTER_MASTER if [ "$REPLICATION_M" == "1" ] && [ "$REPLICATION_S" == "1" ]; then DB_MASTER_MASTER="yes" else DB_MASTER_MASTER="no" fi #===================REPLICATION_PRESENT if [ "$REPLICATION_M" == "1" ] || [ "$REPLICATION_S" == "1" ]; then REPLICATION_PRESENT="yes" else REPLICATION_PRESENT="no" fi #===================DB_SLAVE if [ "$REPLICATION_S" == "1" ]; then DB_SLAVE="yes" else DB_SLAVE="no" fi } read_mor_gui_settings() { # Author: Nerijus Sapola # Year: 2012 # About: This function reads GUI settings # # Returns: # GUI_PRESENT - {0 - GUI should not be running on server; 1 - GUI should be running on server} # MAIN_GUI - { 0 - This is not main GUI, 1 - This is main GUI, 2 - GUI enabled but MAIN_GUI setting is absent if [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "GUI_PRESENT" | wc -l` == "1" ]; then GUI_PRESENT=`awk -F"#" '{print $1}' $settings_config_file | grep GUI_PRESENT | awk -F"=" '{print $2}'` if [ "$GUI_PRESENT" == "1" ]; then if [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "MAIN_GUI" | wc -l` == "1" ]; then MAIN_GUI=`awk -F"#" '{print $1}' $settings_config_file | grep MAIN_GUI | awk -F"=" '{print $2}'` elif [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "MAIN_GUI" | wc -l` == "0" ]; then MAIN_GUI="2" fi fi else # checking if values are not duplicated if [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "GUI_PRESENT" | wc -l` -gt "1" ]; then report "Duplicated values on $settings_config_file, please fix manually" 1 exit 1 fi fi return $GUI_PRESENT } read_mor_asterisk_settings() { # Author: Nerijus Sapola # Year: 2012 # About: This function reads Asterisk settings # # Returns: # ASTERISK_PRESENT - {0 - Asterisk should not be running on server; 1 - Asterisk should be running on server} # MAXLOAD_VALUE - - {0 - maxload is not defined, > 0 - maxload value} if [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "ASTERISK_PRESENT" | wc -l` == "1" ]; then ASTERISK_PRESENT=`awk -F"#" '{print $1}' $settings_config_file | grep ASTERISK_PRESENT | awk -F"=" '{print $2}'` else # checking if values are not duplicated if [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "ASTERISK_PRESENT" | wc -l` -gt "1" ]; then report "Duplicated values on $settings_config_file, please fix manually" 1 exit 1 fi fi if [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "asterisk_max_load" | wc -l` == "1" ]; then MAXLOAD_VALUE=`awk -F"#" '{print $1}' $settings_config_file | grep asterisk_max_load | awk -F"=" '{print $2}' | sed 's/ //g'` else MAXLOAD_VALUE="0" fi return $ASTERISK_PRESENT } read_mor_db_settings() { # Author: Nerijus Sapola # Year: 2012 # About: This function reads Asterisk settings # # Returns: # DB_PRESENT - {0 - MOR Database should not be running on server; 1 - MOR Database should be running on server} if [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "DB_PRESENT" | wc -l` == "1" ]; then DB_PRESENT=`awk -F"#" '{print $1}' $settings_config_file | grep DB_PRESENT | awk -F"=" '{print $2}'` else # checking if values are not duplicated if [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "DB_PRESENT" | wc -l` -gt "1" ]; then report "Duplicated values on $settings_config_file, please fix manually" 1 exit 1 fi fi return $DB_PRESENT } read_mor_scripts_settings() { # If MAIN_DB=1 in system conf, it means that DB related scripts (aggregates, alerts, background tasks) should be running # Returns: # MAIN_DB_PRESENT - {0 - DB related scripts should NOT be running on server; # 1 - DB related scripts should be running on server; # 2 - MAIN_DB is not in definied system.conf if [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "MAIN_DB[ =]" | wc -l` == "1" ]; then MAIN_DB_PRESENT=`awk -F"#" '{print $1}' $settings_config_file | grep "MAIN_DB[ =]" | awk -F"=" '{print $2}'` elif [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "MAIN_DB[ =]" | wc -l` == "0" ]; then MAIN_DB_PRESENT=2 # checking if values are not duplicated elif [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "MAIN_DB[ =]" | wc -l` -gt "1" ]; then report "Duplicated values on $settings_config_file, please fix manually" 1 exit 1 fi return $MAIN_DB_PRESENT } read_mor_pcap_settings() { # This fucntion read pcap settings # Returns: # PCAP_HDD_RESERVED_SPACE - # -1 - setting is not present in system.conf # -2 - inavlid value (contains non number characters) # > 0 - how much space reserve for pcapsipdump # PCAP_LISTENING_NET_INTERFACE - # -1 - setting is not present in system.conf # default - default interface # name of interface # PCAP_ENABLED- # -1 - setting is not present in system.conf # 0 - setting is disabled # 1 - setting is enabled # # # PCAP_BUFFER_SIZE - # -1 - setting is not present in system.conf # pcap buffer size to set (eg 64MiB) PCAP_HDD_RESERVED_SPACE="" PCAP_LISTENING_NET_INTERFACE="" PCAP_ENABLED="" PCAP_BUFFER_SIZE="" PCAP_TSHARK_ENABLED="" local temp_value="" if [ -f $settings_config_file ] && [ $(awk -F"#" '{print $1}' $settings_config_file | grep -i "PCAP_HDD_RESERVED_SPACE" | wc -l) == "1" ] then temp_value=$(awk -F"#" '{print $1}' $settings_config_file | sed 's/[[:space:]]//g' | grep -i "PCAP_HDD_RESERVED_SPACE" | awk -F"=" '{print $2}') if echo $temp_value | grep -qE "^[0-9]+$" then PCAP_HDD_RESERVED_SPACE="$temp_value" else PCAP_HDD_RESERVED_SPACE="-2" fi else PCAP_HDD_RESERVED_SPACE="-1" fi temp_value="" if [ -f $settings_config_file ] && [ $(awk -F"#" '{print $1}' $settings_config_file | grep -i "PCAP_LISTENING_NET_INTERFACE" | wc -l) == "1" ] then temp_value=$(awk -F"#" '{print $1}' $settings_config_file | sed 's/[[:space:]]//g' | grep -i "PCAP_LISTENING_NET_INTERFACE" | awk -F"=" '{print $2}') if echo $temp_value | grep -qiF "default" then PCAP_LISTENING_NET_INTERFACE="default" else PCAP_LISTENING_NET_INTERFACE="$temp_value" fi else PCAP_LISTENING_NET_INTERFACE="-1" fi if [ -f $settings_config_file ] && [ $(awk -F"#" '{print $1}' $settings_config_file | grep -i "PCAP_ENABLED" | wc -l) == "1" ] then temp_value=$(awk -F"#" '{print $1}' $settings_config_file | sed 's/[[:space:]]//g' | grep -i "PCAP_ENABLED" | awk -F"=" '{print $2}') if [ $temp_value == "1" ]; then PCAP_ENABLED="1" else PCAP_ENABLED="0" fi else PCAP_ENABLED="-1" fi if [ -f $settings_config_file ] && [ $(awk -F"#" '{print $1}' $settings_config_file | grep -i "PCAP_BUFFER_SIZE" | wc -l) == "1" ] then temp_value=$(awk -F"#" '{print $1}' $settings_config_file | sed 's/[[:space:]]//g' | grep -i "PCAP_BUFFER_SIZE" | awk -F"=" '{print $2}') if echo $temp_value | grep -qE '^[[:digit:]]+MiB$'; then PCAP_BUFFER_SIZE="$temp_value" else PCAP_BUFFER_SIZE="-1" fi else PCAP_BUFFER_SIZE="-1" fi if [ -f $settings_config_file ] && [ $(awk -F"#" '{print $1}' $settings_config_file | grep -i "pcap_tshark_active" | wc -l) == "1" ] then temp_value=$(awk -F"#" '{print $1}' $settings_config_file | sed 's/[[:space:]]//g' | grep -i "pcap_tshark_active" | awk -F"=" '{print $2}') if [ $temp_value == "1" ]; then PCAP_TSHARK_ENABLED="$temp_value" else PCAP_TSHARK_ENABLED="0" fi else PCAP_TSHARK_ENABLED="-1" fi } read_mor_heartbeat_settings() { # This fucntion reads Heartbeat settings # On return set global variables # HEARTBEAT_PRESENT # MAIN_HEARTBEAT HEARTBEAT_PRESENT=0 MAIN_HEARTBEAT=0 if [[ -f $settings_config_file && $(awk -F"#" '{print $1}' $settings_config_file | sed 's/[[:space:]]//g' | grep -i "HEARTBEAT_PRESENT" | awk -F"=" '{print $2}' | wc -l) == "1" ]]; then HEARTBEAT_PRESENT=1 fi if [[ -f $settings_config_file && $(awk -F"#" '{print $1}' $settings_config_file | sed 's/[[:space:]]//g' | grep -i "MAIN_HEARTBEAT" | awk -F"=" '{print $2}' | wc -l) == "1" ]]; then MAIN_HEARTBEAT=1 fi } read_asterisk_version_settings() { # This function reads asterisk version # Returns: # ASTERISK_VERSION_C7 - # 1.8 - asterisk 1.8 should be installed # 15 - asterisk 15 should be installed (default on centos 7) ASTERISK_VERSION_C7=15 if [ -f $settings_config_file ] && [ `awk -F"#" '{print $1}' $settings_config_file | grep "asterisk_version" | wc -l` == "1" ]; then ASTERISK_VERSION_C7=`awk -F"#" '{print $1}' $settings_config_file | grep asterisk_version | awk -F"=" '{print $2}'` fi return $ASTERISK_VERSION_C7 } read_mor_ratelimit_settings() { # This fucntion reads Ratelimit settings # On return set global variables # ratelimit_active ratelimit_active=0 if [[ -f $settings_config_file && $(awk -F"#" '{print $1}' $settings_config_file | sed 's/[[:space:]]//g' | grep -i "ratelimit_active" | awk -F"=" '{print $2}' | wc -l) == "1" ]]; then ratelimit_active=`awk -F"#" '{print $1}' $settings_config_file | sed 's/[[:space:]]//g' | grep -i "ratelimit_active" | awk -F"=" '{print $2}'` fi }