HEX
Server: Apache
System: Linux vpshost0650.publiccloud.com.br 4.4.79-grsec-1.lc.x86_64 #1 SMP Wed Aug 2 14:18:21 -03 2017 x86_64
User: bandeirantesbomb3 (10068)
PHP: 8.0.7
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: //usr/local/locaweb/bin/lwcorp_newrelic.sh
#!/bin/bash

# VARS e FUNCTIONS
. /etc/lwcorp/lwcorp.functions

chave () {

    CHAVE=$(dialog --backtitle "$LWCORPHEADER" --title "CHAVE" --stdout --inputbox "\nINFORME A CHAVE:" 9 35)

    if [ -z $CHAVE ]; then

        echo "$LOGDATE - [Analista nao informou a chave. Processo cancelado]" >> $LOGFILE;
        dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nERRO: CHAVE NAO INFORMADA" 7 35
        exit 1

    else

        if [ $(echo $CHAVE | wc --max-line-length) != 40 ] ; then

            echo "$LOGDATE - [Analista informou chave invalida. Processo cancelado]" >> $LOGFILE;
            dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "ATENCAO: \n\nCHAVE INVALIDA. CHAVE INFORMADA:\n\n$CHAVE\n\nA CHAVE DEVE POSSUIR EXATOS 40 CARACTERES" 11 100;
            exit 1

        else

            echo "$LOGDATE - [Analista informou chave $CHAVE]" >> $LOGFILE;
            dialog --backtitle "$LWCORPHEADER" --title "$TITLEINFO" --msgbox "\nCHAVE INFORMADA: \n\n$CHAVE \n\nA SEGUIR O SERVICO SERA CONFIGURADO." 11 100
        fi

        if [ $? != 0 ]; then

            echo "$LOGDATE - [Analista cancelou processo teclando ESC]" >> $LOGFILE;
            dialog --backtitle "$LWCORPHEADER" --title "$TITLEINFO" --msgbox "\nPROCESSO CANCELADO" 7 100
            exit 1

        fi

    fi

}

func_set_nrsysmon () {

    #
    # Seta a chave:
    #

    if [ -x /usr/sbin/nrsysmond-config ]; then

        # Configura e reinicia o Servico:

        echo "$LOGDATE - [Setando a chave $CHAVE no /etc/newrelic/nrsysmond.cfg]" >> $LOGFILE
        nrsysmond-config --set license_key=$CHAVE 

        # Reinicia o servico:

        echo "$LOGDATE - [Parando Sysmond]" >> $LOGFILE
        echo "" ; systemctl stop newrelic-sysmond stop

        echo "$LOGDATE - [Subindo Sysmond]" >> $LOGFILE
        echo "" ; systemctl start newrelic-sysmond
        echo ""

        case $? in

            0) echo "$LOGDATE - [Newrelic-Sysmond configurado com sucesso]" >> $LOGFILE;
               dialog --backtitle "$LWCORPHEADER" --title "$TITLESUCESSO" --stdout --msgbox "\nRSYSMOND CONFIGURADO COM SUCESSO" 7 100;;

            *) echo "$LOGDATE - [Falha na configuracao do Newrelic-Sysmond]" >> $LOGFILE;
               dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --stdout --msgbox "\nFALHA NO SERVICO RSYSMOND" 7 100; exit 1 ;;

        esac

    else

        echo "$LOGDATE - [Problema nas permissoes do utilitario nrsysmond-config]" >> $LOGFILE;
        dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --stdout --inputbox "\nPROBLEMA NO UTILITARIO NRSYSMON" 7 100

        exit 1

     fi

}

func_set_newrelic () {

    #
    # Faz um configtest:
    #

    configtest

    #
    # Comeca configuracao
    #

    # Configura o daemon:

    if [ ! -e /etc/newrelic/newrelic.cfg ];then

        if [ -e /etc/newrelic/newrelic.cfg.template ];then

            echo "$LOGDATE - [(Re)Criando arquivo /etc/newrelic/newrelic.cfg]" >> $LOGFILE;
            cp /etc/newrelic/newrelic.cfg.template /etc/newrelic/newrelic.cfg

        else

            echo "$LOGDATE - [Impossivel recriar arquivo /etc/newrelic/newrelic.cfg]" >> $LOGFILE;
            dialog --backtitle "$LWCORPHEADER" --title "$TITLEATENCAO" --msgbox "\nIMPOSSIVEL CRIAR /etc/newrelic/newrelic.cfg" 7 100;
            exit 1

        fi

    fi

    # Configura o newrelic.ini em todas versoes do PHP:

    if [ -e /etc/php.d/newrelic.ini ];then

        sed -i "s/REPLACE_WITH_REAL_KEY/$CHAVE/g" /etc/php.d/newrelic.ini

        for version in 3 4 5 6; do

            cp -f /etc/php.d/newrelic.ini /etc/php/5.$version/php.d/

            case $? in
                0) echo "$LOGDATE - [Copiado newrelic.ini para cada versao do PHP presente no servidor]" >> $LOGFILE;;
                *) echo "$LOGDATE - [Erro ao copiar newrelic.ini para diretorio das versoes do PHP]" >> $LOGFILE; exit 1;;
            esac

        done

        #
        # Reinicia o Newrelic
        # 

        echo "$LOGDATE - [Parando o Newrelic]" >> $LOGFILE;
        echo "" ; systemctl stop newrelic-daemon
        echo "$LOGDATE - [Subindo o Newrelic]" >> $LOGFILE;
        echo "" ; systemctl start newrelic-daemon
        echo ""

        echo "$LOGDATE - [Newrelic configurado e reiniciado. Aguardando resposta do analista sobre reinicio do Apache]" >> $LOGFILE;
        dialog --backtitle "$LWCORPHEADER" --title "$TITLEATENCAO" --yesno "\nATENCAO:\n\nO NEWRELIC FOI CONFIGURADO COM SUCESSO.\n\nO APACHE2, CONTUDO, PRECISA SER REINICIADO PARA RECARREGAR O MODULO NEWRELIC.\n\nDESEJA REINICIAR O APACHE2 AGORA?" 13 100

        if [ $? = 0 ];then

            #
            # Reinicia o Apache2:
            #

            echo "$LOGDATE - [Parando o Apache]" >> $LOGFILE;
            apachectl stop

            if [[ $(ps aux | grep apache2 | grep -v grep) ]]; then

                echo "$LOGDATE - [Matando processos presos]" >> $LOGFILE;
                echo ""
                kill -9 $(ps aux | grep apache2 | grep -v grep | awk '{print$2}')

            fi

            echo "$LOGDATE - [Subindo o Apache]" >> $LOGFILE;
            apachectl start
            echo ""

            echo "$LOGDATE - [Newrelic configurado com sucesso e Apache reiniciado]" >> $LOGFILE;
            dialog --backtitle "$LWCORPHEADER" --title "$TITLESUCESSO" --msgbox "\nNEWRELIC CONFIGURADO COM SUCESSO E APACHE2 REINICIADO." 7 100; exit 0
            exit 0

        else

           echo "$LOGDATE - [Newrelic configurado com sucesso, mas o Apache nao foi reiniciado]" >> $LOGFILE;
           dialog --backtitle "$LWCORPHEADER" --title "$TITLEINFO" --msgbox "\nNEWRELIC CONFIGURADO COM SUCESSO.\n\nOBSERVACAO\n\nCOMO O APACHE2 NAO FOI REINICIADO, OS DADOS PODEM DEMORAR PARA ENTRAR NO PAINEL NEWRELIC." 11 100; exit 0
           exit 0

        fi

fi

}

dialog --backtitle "$LWCORPHEADER" --title "$TITLEATENCAO" --msgbox "\nA CONFIGURACAO DO NEWRELIC REQUER RESTART DO APACHE2." 7 65;

echo "$LOGDATE - [Aguardando analista escolher acao]" >> $LOGFILE;

INIT_ACT=`dialog --backtitle "$LWCORPHEADER" --stdout \
     --radiolist "\n SELECIONE A ACAO DESEJADA:" \
     0 0 0 \
     CONFIGURACAO_NEWRELIC 'Configurar chave Newrelic;' off \
     CONFIGURACAO_NRSYSMON 'Configurar chave Nrsysmon.' off \
     CONFIGURACAO_NEWRELIC_E_NRSYSMON 'Configurar Newrelic e Nrsysmon.' off`

case $INIT_ACT in
    CONFIGURACAO_NEWRELIC)
        echo "$LOGDATE - [Analista selecionou configuracao de Newrelic]" >> $LOGFILE;
        dialog --backtitle "$LWCORPHEADER" --title "$TITLEATENCAO" --msgbox "\nSELECIONADA CONFIGURACAO DE NEWRELIC." 7 100;
        chave;
        func_set_newrelic;;

    CONFIGURACAO_NRSYSMON)
        echo "$LOGDATE - [Analista selecionou configuracao de Nrsysmon]" >> $LOGFILE;
        dialog --backtitle "$LWCORPHEADER" --title "$TITLEATENCAO" --msgbox "\nSELECIONADA CONFIGURACAO DE NRSYSMON" 7 100;
        chave;
        func_set_nrsysmon;;

    CONFIGURACAO_NEWRELIC_E_NRSYSMON)
        echo "$LOGDATE - [Analista selecionou configuracao de Newrelic e Nrsysmon]" >> $LOGFILE;
        dialog --backtitle "$LWCORPHEADER" --title "$TITLEATENCAO" --msgbox "\nSELECIONADA CONFIGURACAO DE NEWRELIC E NRSYSMON" 7 100;
        chave;
        func_set_nrsysmon;
        func_set_newrelic;;

    *)
        echo "$LOGDATE - [Analista nao selecionou uma acao e/ou cancelou a configuracao]" >> $LOGFILE;
        dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nCONFIGURACAO CANCELADA." 7 65;
        exit 1;;
esac