#!/usr/bin/env bash echo -e "####################################################" echo -e "#Este script atualiza WILDFLY com: " echo -e "# " echo -e "# 1 - VentaBoletosServidor" echo -e "# 2 - EventosExtrasServidor" echo -e "# 3 - TareasAgendadas" echo -e "# 4 - VentaBoletosClientes" echo -e "# 5 - ADM " echo -e "# 6 - Digitação" echo -e "# " echo -e "####################################################" echo -e " " sleep 1 IPPRIV=$(hostname -I | awk '{ print $1 }') listaclientes=$(ls /etc/systemd/system/ | grep ^wild* | sort | cut -d "." -f 1) read -p "DIGITE o NÚMERO ou COPIE e COLE o que vai atualizar: " service sleep 1 case $service in 1|VentaBoletosServidor) echo -e " " echo -e "Opção \"1 - VentaBoletosServidor\" foi escolhida..." sleep 2 echo -e " " echo -e "Listando clientes neste server..." echo -e "-------------------------------------------------" echo -e "$listaclientes" echo -e "-------------------------------------------------" read -p "COPIE e COLE ou digite qual cliente será atualizado: " cliente echo -e " " portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "jboss.socket.binding.port-offset" | cut -d ":" -f 2 | tr -d '}">') portapp=$(expr $portconf + 8080) sleep 1 versaoatual=$(curl -L -s http://$IPPRIV:$portapp/VentaBoletosServidor | grep VBS) echo -e " " echo -e "A versão atual do VentaBoletosServidor de $cliente é: " echo -e " " echo -e "###############################" echo -e "$versaoatual" echo -e "###############################" echo -e " " echo -e "Abaixo, informe seu usuario e senha do Jenkins..." echo -e " " echo -e " https://jenkinstotalbus.rjconsultores.com.br " echo -e " " read -p "Digite seu USUÁRIO do Jenkins: " userj echo -e " " read -s -p "Digite sua SENHA do Jenkins: " passj echo -e " " echo -e "Validando usuario e senha..." echo -e " " validj=$(curl -s -w "%{http_code}" -su "$userj:$passj" -o /dev/null "https://jenkinstotalbus.rjconsultores.com.br" ; echo) if [[ "$validj" -eq 200 ]]; then echo "Usuário e senha validado com sucesso!" elif [[ "$validj" -eq 401 ]]; then echo -e "Usuário ou senha incorretos." echo -e "Tente novamente..." exit 0 else echo "Erro ao tentar logar. Código HTTP: $validj" echo -e "Finalizando script." exit 1 fi echo -e " " read -p "Informe o NÚMERO da versão do VentaBoletosServidor: " versaovta echo -e " " sleep 3 listvta=$(curl https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20VentaBoletosServidor/$versaovta/artifact/dist/ -su $userj:$passj | grep -oP '(?<=href=")[^"]+\.war(?=")') if [ -z "$listvta" ]; then echo -e "A versão $versaovta do VentaBoletosServidor não está mais disponível para download." echo -e "Verifique e execute novamente." echo -e "Finalizado!!!" exit 0 else echo -e "Listando arquivos disponíveis da versão ***" $versaovta "***" echo -e "--------------------------------------------" echo -e "$listvta" echo -e "--------------------------------------------" fi echo -e " " read -p "COPIE e COLE ou digite qual arquivo listado vai ser utilizado: " vtaescolhido echo -e " " echo -e "Baixando $vtaescolhido versão $versaovta ..." rm -rf /tmp/VentaBoletosServidor.war curl -u $userj:$passj -o /tmp/$vtaescolhido https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20VentaBoletosServidor/$versaovta/artifact/dist/$vtaescolhido echo -e " " mv /tmp/$vtaescolhido /tmp/VentaBoletosServidor.war echo -e " " sleep 1 echo -e "***Iniciando backup do "VentaBoletosServidor.war" de " $cliente " ..." echo -e " " portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "socket-binding-group name" | cut -d ":" -f 2 | tr -d '}">') portconsole=$(expr $portconf + 9990) sleep 1 time=$(date +%d-%m-%Y-%H-%M) mkdir -p /dados/bkp_VTA/$cliente-$time bkp=/dados/bkp_VTA/$cliente-$time export JAVA_HOME=/dados/jdk-11.0.5 /dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="attachment save --operation=/deployment=VentaBoletosServidor.war:read-content() --file=$bkp/VentaBoletosServidor.war" sleep 1 echo -e " " echo -e "Iniciando atualização de "VentaBoletosServidor" do cliente "$cliente" para versão "$versaovta"..." /dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="deployment deploy-file --replace /tmp/VentaBoletosServidor.war" echo -e " " sleep 5 echo -e "reiniciando $cliente ... " systemctl restart $cliente echo -e " " URL="http://$IPPRIV:$portapp" while true; do STATUS_CODE=$(curl -o /dev/null -s -w "%{http_code}" "$URL") if [ "$STATUS_CODE" -eq 200 ]; then echo -e "--------------------------------------------------" echo -e "Restart finalizado!!! $cliente NO AR!!!" echo -e "--------------------------------------------------" break else echo -e "aguardando $cliente subir ..." fi sleep 5 done echo -e " " logt=$(date +%d-%m-%Y) echo -e "Gravando log da atualização em "/dados/$cliente/standalone/log/atualizacao_$logt.log" ..." feito=$(echo -e $userj | tr a-z A-Z) versaonova=$(curl -L -s http://$IPPRIV:$portapp/VentaBoletosServidor | grep VBS) echo -e " " echo -e "Atualização do cliente "$cliente" para versão "$versaonova" concluída!!! " echo -e " " echo -e " ---------------------------------------------------------------------------------- - Atualização ***VentaBoletosServidor*** - Data/Hora: $time - Atualizando cliente: $cliente - Versão antiga: $versaoatual - Versão NOVA: *** $versaonova *** - Arquivo baixado: $vtaescolhido - Backup salvo em "$bkp/VentaBoletosServidor.war" - Endereço: $URL/VentaBoletosServidor - Console: http://$IPPRIV:$portconsole - Feito por: $feito ################################################################################## #- Em caso de Rollback execute o comando abaixo: export JAVA_HOME=/dados/jdk-11.0.5 && /dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands=\"deployment deploy-file --replace $bkp/VentaBoletosServidor.war\" ################################################################################## ----------------------------------------------------------------------------------" >> /dados/$cliente/standalone/log/atualizacao_$logt.log echo -e " " echo -e "- Versão antiga: $versaoatual" echo -e " " echo -e "- Nova Versão: $versaonova " echo -e " " echo -e "- Endereço: $URL/VentaBoletosServidor" echo -e " " echo -e "- Console: http://$IPPRIV:$portconsole" echo -e " " echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################" exit 0 ;; 2|EventosExtrasServidor) echo -e " " echo -e "Opção \"2 - EventosExtrasServidor\" foi escolhida..." sleep 2 echo -e " " echo -e "Listando clientes neste server..." echo -e "-------------------------------------------------" echo -e "$listaclientes" echo -e "-------------------------------------------------" read -p "COPIE e COLE ou digite qual cliente será atualizado: " cliente echo -e " " portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "jboss.socket.binding.port-offset" | cut -d ":" -f 2 | tr -d '}">') portapp=$(expr $portconf + 8080) sleep 1 versaoatual=$(curl -L -s http://$IPPRIV:$portapp/EventosExtrasServidor | grep EES) echo -e " " echo -e "A versão atual do EventosExtrasServidor de $cliente é: " echo -e " " echo -e "###############################" echo -e " $versaoatual" echo -e "###############################" echo -e " " echo -e "Abaixo, informe seu usuario e senha do Jenkins..." echo -e " " echo -e " https://jenkinstotalbus.rjconsultores.com.br " echo -e " " read -p "Digite seu USUÁRIO do Jenkins: " userj echo -e " " read -s -p "Digite sua SENHA do Jenkins: " passj echo -e " " echo -e "Validando usuario e senha..." echo -e " " validj=$(curl -s -w "%{http_code}" -su "$userj:$passj" -o /dev/null "https://jenkinstotalbus.rjconsultores.com.br" ; echo) if [[ "$validj" -eq 200 ]]; then echo "Usuário e senha validado com sucesso!" elif [[ "$validj" -eq 401 ]]; then echo -e "Usuário ou senha incorretos." echo -e "Tente novamente..." exit 0 else echo "Erro ao tentar logar. Código HTTP: $validj" echo -e "Finalizando script." exit 1 fi echo -e " " read -p "Informe o NÚMERO da versão do EventosExtrasServidor: " versaoees echo -e " " sleep 3 listees=$(curl https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20EventosExtrasServidor/$versaoees/artifact/dist/ -su $userj:$passj | grep -oP '(?<=href=")[^"]+\.war(?=")') if [ -z "$listees" ]; then echo -e "A versão $versaoees do EventosExtrasServidor não está mais disponível para download." echo -e "Verifique e execute novamente." echo -e "Finalizado!!!" exit 0 else echo -e "Listando arquivos disponíveis da versão ***" $versaoees "***" echo -e "--------------------------------------------" echo -e "$listees" echo -e "--------------------------------------------" fi echo -e " " read -p "COPIE e COLE ou digite qual arquivo listado vai ser utilizado: " eesescolhido echo -e " " echo -e "Baixando $eesescolhido versão $versaoees ..." rm -rf /tmp/EventosExtrasServidor.war curl -u $userj:$passj -o /tmp/$eesescolhido https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20EventosExtrasServidor/$versaoees/artifact/dist/$eesescolhido echo -e " " mv /tmp/$eesescolhido /tmp/EventosExtrasServidor.war echo -e " " sleep 1 echo -e "***Iniciando backup do "EventosExtrasServidor.war" de " $cliente " ..." echo -e " " portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "socket-binding-group name" | cut -d ":" -f 2 | tr -d '}">') portconsole=$(expr $portconf + 9990) sleep 1 time=$(date +%d-%m-%Y-%H-%M) mkdir -p /dados/bkp_EES/$cliente-$time bkp=/dados/bkp_EES/$cliente-$time export JAVA_HOME=/dados/jdk-11.0.5 /dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="attachment save --operation=/deployment=EventosExtrasServidor.war:read-content() --file=$bkp/EventosExtrasServidor.war" sleep 1 echo -e " " echo -e "Iniciando atualização de "EventosExtrasServidor" do cliente "$cliente" para versão "$versaoees"..." /dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="deployment deploy-file --replace /tmp/EventosExtrasServidor.war" echo -e " " echo -e "reiniciando $cliente ... " systemctl restart $cliente echo -e " " URL="http://$IPPRIV:$portapp" while true; do STATUS_CODE=$(curl -o /dev/null -s -w "%{http_code}" "$URL") if [ "$STATUS_CODE" -eq 200 ]; then echo -e "--------------------------------------------------" echo -e "Restart finalizado!!! $cliente NO AR!!!" echo -e "--------------------------------------------------" break else echo -e "aguardando $cliente subir ..." fi sleep 5 done echo -e " " logt=$(date +%d-%m-%Y) echo -e "Gravando log da atualização em "/dados/$cliente/standalone/log/atualizacao_$logt.log" ..." feito=$(echo -e $userj | tr a-z A-Z) versaonova=$(curl -L -s http://$IPPRIV:$portapp/EventosExtrasServidor | grep EES) echo -e " " echo -e "Atualização do cliente "$cliente" para versão "$versaonova" concluída!!! " echo -e " " echo -e " ---------------------------------------------------------------------------------- - Atualização ***EventosExtrasServidor*** - Data/Hora: $time - Atualizando cliente: $cliente - Versão antiga: $versaoatual - Versão NOVA: *** $versaonova *** - Arquivo baixado: $eesescolhido - Backup salvo em "$bkp/EventosExtrasServidor.war" - Endereço: $URL/EventosExtrasServidor - Console: http://$IPPRIV:$portconsole - Feito por: $feito ################################################################################## #- Em caso de Rollback execute o comando abaixo: export JAVA_HOME=/dados/jdk-11.0.5 && /dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands=\"deployment deploy-file --replace $bkp/EventosExtrasServidor.war\" ################################################################################## ----------------------------------------------------------------------------------" >> /dados/$cliente/standalone/log/atualizacao_$logt.log echo -e " " echo -e "- Versão antiga: $versaoatual" echo -e " " echo -e "- Nova Versão: $versaonova " echo -e " " echo -e "- Endereço: $URL/EventosExtrasServidor" echo -e " " echo -e "- Console: http://$IPPRIV:$portconsole" echo -e " " echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################" exit 0 ;; 3|TareasAgendadas) echo -e " " echo -e "Opção \"3 - TareasAgendadas\" foi escolhida..." sleep 2 echo -e " " echo -e "Listando clientes neste server..." echo -e "-------------------------------------------------" echo -e "$listaclientes" echo -e "-------------------------------------------------" read -p "COPIE e COLE ou digite qual cliente será atualizado: " cliente echo -e " " portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "jboss.socket.binding.port-offset" | cut -d ":" -f 2 | tr -d '}">') portapp=$(expr $portconf + 8080) portconsole=$(expr $portconf + 9990) sleep 1 versaoatual=$(curl -L -s http://$IPPRIV:$portapp/TareasAgendadas | grep TAG) echo -e " " echo -e "Verificando se existe TAREAS em \"$cliente\" ..." echo -e " " sleep 1 export JAVA_HOME=/dados/jdk-11.0.5 TARCHECK=$(/dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="deployment-info" | grep "Tareas") if [[ -n "$TARCHECK" ]]; then echo "Tareas encontrado!!!" echo "Seguindo com a atualização..." else echo "Tareas NÃO ENCONTRADO!!!" echo "Verifique em outro servidor..." echo " " echo "...finalizando esta atualização!" exit 1 fi sleep 1 echo " " echo -e "A versão atual do TareasAgendadas de $cliente é: " echo -e " " echo -e "###############################" echo -e " $versaoatual" echo -e "###############################" echo -e " " echo -e "Abaixo, informe seu usuario e senha do Jenkins..." echo -e " " echo -e " https://jenkinstotalbus.rjconsultores.com.br " echo -e " " read -p "Digite seu USUÁRIO do Jenkins: " userj echo -e " " read -s -p "Digite sua SENHA do Jenkins: " passj echo -e " " echo -e "Validando usuario e senha..." echo -e " " validj=$(curl -s -w "%{http_code}" -su "$userj:$passj" -o /dev/null "https://jenkinstotalbus.rjconsultores.com.br" ; echo) if [[ "$validj" -eq 200 ]]; then echo "Usuário e senha validado com sucesso!" elif [[ "$validj" -eq 401 ]]; then echo -e "Usuário ou senha incorretos." echo -e "Tente novamente..." exit 0 else echo "Erro ao tentar logar. Código HTTP: $validj" echo -e "Finalizando script." exit 1 fi echo -e " " read -p "Informe o NÚMERO da versão do TareasAgendadas: " versaotar echo -e " " sleep 3 listtar=$(curl https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20TareasAgendadas/$versaotar/artifact/dist/ -su $userj:$passj | grep -oP '(?<=href=")[^"]+\.war(?=")') if [ -z "$listtar" ]; then echo -e "A versão $versaotar do TareasAgendadas não está mais disponível para download." echo -e "Verifique e execute novamente." echo -e "Finalizado!!!" exit 0 else echo -e "Listando arquivos disponíveis da versão ***" $versaotar "***" echo -e "--------------------------------------------" echo -e "$listtar" echo -e "--------------------------------------------" fi echo -e " " read -p "COPIE e COLE ou digite qual arquivo listado vai ser utilizado: " tarescolhido echo -e " " echo -e "Baixando $tarescolhido versão $versaotar ..." rm -rf /tmp/TareasAgendadas.war curl -u $userj:$passj -o /tmp/$tarescolhido https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20TareasAgendadas/$versaotar/artifact/dist/$tarescolhido echo -e " " mv /tmp/$tarescolhido /tmp/TareasAgendadas.war echo -e " " sleep 1 echo -e "***Iniciando backup do "TareasAgendadas.war" de " $cliente " ..." echo -e " " sleep 1 time=$(date +%d-%m-%Y-%H-%M) mkdir -p /dados/bkp_TAR/$cliente-$time bkp=/dados/bkp_TAR/$cliente-$time export JAVA_HOME=/dados/jdk-11.0.5 /dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="attachment save --operation=/deployment=TareasAgendadas.war:read-content() --file=$bkp/TareasAgendadas.war" sleep 1 echo -e " " echo -e "Iniciando atualização de "TareasAgendadas" do cliente "$cliente" para versão "$versaotar"..." /dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="deployment deploy-file --replace /tmp/TareasAgendadas.war" echo -e " " sleep 5 echo -e "reiniciando $cliente ... " systemctl restart $cliente echo -e " " URL="http://$IPPRIV:$portapp" while true; do STATUS_CODE=$(curl -o /dev/null -s -w "%{http_code}" "$URL") if [ "$STATUS_CODE" -eq 200 ]; then echo -e "--------------------------------------------------" echo -e "Restart finalizado!!! $cliente NO AR!!!" echo -e "--------------------------------------------------" break else echo -e "aguardando $cliente subir ..." fi sleep 5 done echo -e " " logt=$(date +%d-%m-%Y) echo -e "Gravando log da atualização em "/dados/$cliente/standalone/log/atualizacao_$logt.log" ..." feito=$(echo -e $userj | tr a-z A-Z) versaonova=$(curl -L -s http://$IPPRIV:$portapp/TareasAgendadas | grep TAG) echo -e " " echo -e "Atualização do cliente "$cliente" para versão "$versaonova" concluída!!! " echo -e " " echo -e " ---------------------------------------------------------------------------------- - Atualização ***TareasAgendadas*** - Data/Hora: $time - Atualizando cliente: $cliente - Versão antiga: $versaoatual - Versão NOVA: *** $versaonova *** - Arquivo baixado: $tarescolhido - Backup salvo em "$bkp/TareasAgendadas.war" - Endereço: $URL/TareasAgendadas - Console: http://$IPPRIV:$portconsole - Feito por: $feito ################################################################################## #- Em caso de Rollback execute o comando abaixo: export JAVA_HOME=/dados/jdk-11.0.5 && /dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands=\"deployment deploy-file --replace $bkp/TareasAgendadas.war\" ################################################################################## ----------------------------------------------------------------------------------" >> /dados/$cliente/standalone/log/atualizacao_$logt.log echo -e " " echo -e "- Versão antiga: $versaoatual" echo -e " " echo -e "- Nova Versão: $versaonova " echo -e " " echo -e "- Endereço: $URL/TareasAgendadas" echo -e " " echo -e "- Console: http://$IPPRIV:$portconsole" echo -e " " echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################" exit 0 ;; 4|VentaBoletosClientes) echo -e " " echo -e "Opção \"4 - VentaBoletosCliente\" foi escolhida..." sleep 2 echo -e " " echo -e "Listando clientes neste server..." echo -e "-------------------------------------------------" echo -e "$listaclientes" echo -e "-------------------------------------------------" read -p "COPIE e COLE ou digite qual cliente será atualizado: " cliente echo -e " " portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "jboss.socket.binding.port-offset" | cut -d ":" -f 2 | tr -d '}">') portapp=$(expr $portconf + 8080) sleep 1 echo -e "Verificando se VentaBoletosClientes está neste local para cliente \"$cliente\" ..." echo -e " " VALIDAVBC="/dados/$cliente/standalone/deployments/webstart.war/sco2/SCO.jar.pack.gz" if [ ! -f "$VALIDAVBC" ]; then echo -e "VentaBoletosClientes para $cliente não encontrado neste local." echo -e "Verifique onde está instalado e execute novamente." sleep 1 echo -e "Finalizado!" exit 0 else echo "VentaBoletosClientes encontrado neste local..." echo -e "$VALIDAVBC" echo -e "Continuando atualização..." sleep 1 fi echo -e " " echo -e "Verificando a versão atual..." [ ! -x "$(which unzip)" ] && echo "Instalando... " && sudo apt install unzip 1> /dev/null 2>&1 -y # unzip instalado? mkdir -p /tmp/$cliente cp -r /dados/$cliente/standalone/deployments/webstart.war/sco2/SCO.jar.pack.gz /tmp/$cliente /dados/jdk-11.0.5/bin/unpack200 /tmp/$cliente/SCO.jar.pack.gz /tmp/$cliente/SCO.jar 1> /dev/null 2>&1 versaoatual=$(unzip -p /tmp/$cliente/SCO.jar versionVBC.info ; echo) echo -e " " echo -e "A versão atual é: $versaoatual" echo -e " " echo -e "Abaixo, informe seu usuario e senha do Jenkins..." echo -e " " echo -e " https://jenkinstotalbus.rjconsultores.com.br " echo -e " " read -p "Digite seu USUÁRIO do Jenkins: " userj echo -e " " read -s -p "Digite sua SENHA do Jenkins: " passj echo -e " " echo -e "Validando usuario e senha..." echo -e " " validj=$(curl -s -w "%{http_code}" -su "$userj:$passj" -o /dev/null "https://jenkinstotalbus.rjconsultores.com.br" ; echo) if [[ "$validj" -eq 200 ]]; then echo "Usuário e senha validado com sucesso!" elif [[ "$validj" -eq 401 ]]; then echo -e "Usuário ou senha incorretos." echo -e "Tente novamente..." exit 0 else echo "Erro ao tentar logar. Código HTTP: $validj" echo -e "Finalizando script." exit 1 fi echo -e " " read -p "Informe o NÚMERO da versão do VentaBoletosCliente: " versaoclient echo -e " " sleep 3 listclient=$(curl https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20VentaBoletosCliente/$versaoclient/artifact/dist/ -su $userj:$passj | grep -oP '(?<=href=")[^"]+\.gz(?=")') if [ -z "$listclient" ]; then echo -e "A versão $versaoclient do VentaBoletosClientes não está mais disponível para download." echo -e "Verifique e execute novamente." echo -e "Finalizado!!!" exit 0 else echo -e "Listando arquivos disponíveis da versão ***" $versaoclient "***" echo -e "--------------------------------------------" echo -e "$listclient" echo -e "--------------------------------------------" fi echo -e " " read -p "COPIE e COLE ou digite qual arquivo listado vai ser utilizado: " clientescolhido echo -e " " echo -e "Baixando $clientescolhido versão $versaoclient ..." rm -rf /tmp/SCO.jar.pack.gz curl -u $userj:$passj -o /tmp/$clientescolhido https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20VentaBoletosCliente/$versaoclient/artifact/dist/$clientescolhido echo -e " " mv /tmp/$clientescolhido /tmp/SCO.jar.pack.gz echo -e " " sleep 1 echo -e "***Iniciando backup do "SCO.jar.pack.gz" de " $cliente " ..." echo -e " " portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "socket-binding-group name" | cut -d ":" -f 2 | tr -d '}">') portconsole=$(expr $portconf + 9990) sleep 1 time=$(date +%d-%m-%Y-%H-%M) mkdir -p /dados/bkp_VBC/$cliente-$time bkp=/dados/bkp_VBC/$cliente-$time cp -rv /dados/$cliente/standalone/deployments/webstart.war/sco2/SCO.jar.pack.gz $bkp/SCO.jar.pack.gz rm -rf /dados/$cliente/standalone/deployments/webstart.war/sco2/SCO.jar.pack.gz* rm -rf /dados/$cliente/standalone/deployments/webstart.war/sco2/scopaf.conf* sleep 1 echo -e " " echo -e "Iniciando atualização de "VentaBoletosCliente" do cliente "$cliente" para versão "$versaoclient"..." cp -rv /tmp/SCO.jar.pack.gz /dados/$cliente/standalone/deployments/webstart.war/sco2/ chown -Rf $cliente:$cliente /dados/$cliente/standalone/deployments/webstart.war/sco2/ echo -e " " sleep 5 echo -e "Verificando nova versão..." /dados/jdk-11.0.5/bin/unpack200 /tmp/SCO.jar.pack.gz /tmp/SCO.jar 1> /dev/null 2>&1 versaonova=$(unzip -p /tmp/SCO.jar versionVBC.info ; echo) logt=$(date +%d-%m-%Y) echo -e "Gravando log da atualização em "/dados/$cliente/standalone/log/atualizacao_$logt.log" ..." feito=$(echo -e $userj | tr a-z A-Z) echo -e " " echo -e "Atualização do cliente "$cliente" para versão "$versaonova" concluída!!! " echo -e " " echo -e " ---------------------------------------------------------------------------------- - Atualização ***VentaBoletosClientes*** - Data/Hora: $time - Atualizando cliente: $cliente - Versão antiga: $versaoatual - Versão NOVA: *** $versaonova *** - Arquivo baixado: $clientescolhido - Backup salvo em "$bkp/SCO.jar.pack.gz" - Console: http://$IPPRIV:$portconsole - Feito por: $feito ################################################################################################################ #- Em caso de Rollback execute os comandos abaixo: mv /dados/$cliente/standalone/deployments/webstart.war/sco2/SCO.jar.pack.gz /tmp/SCO.jar.pack.gz_RB rm -rf /dados/$cliente/standalone/deployments/webstart.war/sco2/scopaf.conf* cp -r $bkp/SCO.jar.pack.gz /dados/$cliente/standalone/deployments/webstart.war/sco2/SCO.jar.pack.gz chown -Rf $cliente:$cliente /dados/$cliente/standalone/deployments/webstart.war/sco2/ ################################################################################################################ ----------------------------------------------------------------------------------" >> /dados/$cliente/standalone/log/atualizacao_$logt.log rm -rf /tmp/SCO* rm -rf /tmp/$cliente echo -e " " echo -e "- Versão antiga: $versaoatual" echo -e " " echo -e "- Nova Versão: $versaonova " echo -e " " echo -e "- Console: http://$IPPRIV:$portconsole" echo -e " " echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################" exit 0 ;; 5|ADM) echo -e " " echo -e "Opção \"5 - ADM foi escolhida...\"" sleep 2 echo -e " " adms=$(ls /etc/systemd/system/ | grep ^wild* | sort | cut -d "." -f 1) echo -e "####################################################" echo -e "##### Listando ADMs que rodam neste servidor: #####" echo -e "####################################################" echo -e "----------------------------------------------------" echo -e "$adms" echo -e "----------------------------------------------------" read -p "***COPIE e COLE*** ADM listado que deseja atualizar: " adm echo -e " " echo -e "Você COPIOU e COLOU >>>>>>> $adm <<<<<<<<" echo -e " " portconf=$(cat /dados/$adm/standalone/configuration/standalone.xml | grep "socket-binding-group name" | cut -d ":" -f 2 | tr -d '}">') portconsole=$(expr $portconf + 9990) sleep 1 echo -e " " echo -e "Verificando se existe "ventaboletosadm" em \"$adm\" ..." export JAVA_HOME=/dados/jdk-11.0.5 ADMCHECK=$(/dados/$adm/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="deployment-info" | grep "ventaboletosadm") if [[ -n "$ADMCHECK" ]]; then echo "ADM encontrado!!!" echo "Seguindo com a atualização..." else echo "ADM NÃO ENCONTRADO!!!" echo "Verifique em outro servidor..." echo " " echo "...finalizando esta atualização!" exit 1 fi echo -e " " sleep 1 echo -e "Será feito o download da versão que você digitar abaixo: " echo -e "####################################################" read -p "Digite a versão do adm: " versaoadm echo -e " " echo -e "Baixando ADM versão --> $versaoadm <-- para atualização." rm -rf /tmp/ventaboletosadm.war curl -O http://52.5.53.15:8081/nexus/content/repositories/releases/br/com/rjconsultores/ventaboletosadm/$versaoadm/ventaboletosadm-$versaoadm.war mv ventaboletosadm-$versaoadm.war /tmp/ventaboletosadm.war sleep 2 echo -e " " echo -e "#############################################################################################" echo -e "Apagando backups antigos com mais de 14 dias..." find "/dados/" -type d -name 'bkp_ADM_*' -mtime +14 -exec rm -rf {} \; echo -e " " echo -e "#############################################################################################" echo -e "Apagando backups antigos com mais de 14 dias..." find "/dados/bkp_ADM/" -type d -name '*' -mtime +14 -exec rm -rf {} \; VER="/dados/$adm/standalone/deployments/ventaboletosadm*" if [ -e $VER ]; then mv $VER /opt/ else echo -e "***Iniciando backup do "ventaboletosadm.war" de " $adm " ..." fi echo -e " " time=$(date +%d-%m-%Y-%H-%M) mkdir -p /dados/bkp_ADM/$adm-$time bkp=/dados/bkp_ADM/$adm-$time export JAVA_HOME=/dados/jdk-11.0.5 /dados/$adm/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="attachment save --operation=/deployment=ventaboletosadm.war:read-content() --file=$bkp/ventaboletosadm.war" sleep 2 echo -e " " echo "################################################################################################" echo -e "Iniciando Atualização do ADM de $adm ..." echo -e " " sleep 2 echo -e "***Você pode duplicar este terminal e acompanhar o log com o comando abaixo: ***" echo -e " " echo -e "tail -f /dados/$adm/standalone/log/server.log" export JAVA_HOME=/dados/jdk-11.0.5 /dados/$adm/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="deployment deploy-file --replace /tmp/ventaboletosadm.war" echo -e "***********************************************************************" bkpok="$bkp/ventaboletosadm.war" echo -e "Backup salvo em: $bkpok " echo -e "***********************************************************************" echo -e "Favor acessar ADM via browser e validar. *****" echo -e " " portconf=$(cat /dados/$adm/standalone/configuration/standalone.xml | grep "jboss.socket.binding.port-offset" | cut -d ":" -f 2 | tr -d '}">') portapp=$(expr $portconf + 8080) [ ! -x "$(which unzip)" ] && echo "Instalando... " && sudo apt install unzip 1> /dev/null 2>&1 -y # unzip instalado? versaonova=$(unzip -p /tmp/ventaboletosadm.war WEB-INF/classes/versionADM.info ; echo) versaoantiga=$(unzip -p $bkp/ventaboletosadm.war WEB-INF/classes/versionADM.info ; echo) echo -e "reiniciando $adm ... " systemctl restart $adm echo -e " " URL="http://$IPPRIV:$portapp" while true; do STATUS_CODE=$(curl -o /dev/null -s -w "%{http_code}" "$URL") if [ "$STATUS_CODE" -eq 200 ]; then echo -e "--------------------------------------------------" echo -e "Restart finalizado!!! $adm NO AR!!!" echo -e "--------------------------------------------------" break else echo -e "aguardando $adm subir ..." fi sleep 5 done echo -e " " logt=$(date +%d-%m-%Y) echo -e "Gravando log da atualização em "/dados/$adm/standalone/log/atualizacao_$logt.log" ..." feito=$(who | awk '{print $1}' | head -n 1 | tr a-z A-Z) echo -e " ---------------------------------------------------------------------------------- - Atualização >>>ADM<<< - Data/Hora: $time - Atualizando cliente: $adm - Versão antiga: $versaoantiga - Versão NOVA: *** $versaonova *** - Backup salvo em "$bkp/ventaboletosadm.war" - Endereço: $URL/ventaboletosadm - Console: http://$IPPRIV:$portconsole - Feito por: $feito ################################################################################## #- Em caso de Rollback execute o comando abaixo: export JAVA_HOME=/dados/jdk-11.0.5 && /dados/$adm/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands=\"deployment deploy-file --replace $bkp/ventaboletosadm.war\" ################################################################################## ----------------------------------------------------------------------------------" >> /dados/$adm/standalone/log/atualizacao_$logt.log echo -e " " echo -e "- Versão antiga: $versaoantiga" echo -e " " echo -e "- Versão NOVA: *** $versaonova ***" echo -e " " echo -e "- Endereço: $URL/ventaboletosadm" echo -e " " echo -e "- Console: http://$IPPRIV:$portconsole" echo -e " " sleep 1 echo -e "***********************************************************************" echo -e "*****Atualização do " $adm " para a $versaonova finalizada!!!****" echo -e "***********************************************************************" rm -rf /tmp/ventaboletosadm.war ;; 6|Digitação) echo -e " " echo -e "Opção \"6 - Digitação\" foi escolhida..." sleep 2 echo -e " " echo -e "Listando clientes neste server..." echo -e "-------------------------------------------------" echo -e "$listaclientes" echo -e "-------------------------------------------------" read -p "COPIE e COLE ou digite qual cliente será atualizado: " cliente echo -e " " portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "jboss.socket.binding.port-offset" | cut -d ":" -f 2 | tr -d '}">') portapp=$(expr $portconf + 8080) sleep 1 echo -e "Verificando se existe DIGITAÇÃO neste local para cliente \"$cliente\" ..." echo -e " " sleep 1 DIGITA="/dados/$cliente/standalone/deployments/webstart.war/sco2/digitacao.jar.pack.gz" if [ ! -f "$DIGITA" ]; then echo -e "DIGITAÇÃO para $cliente não encontrado neste local." echo -e "Verifique onde está instalado e execute novamente." sleep 1 echo -e "Finalizado!" exit 0 else echo "DIGITAÇÃO encontrado neste local..." echo -e "$DIGITA" echo -e "Continuando atualização..." sleep 1 fi echo -e " " echo -e "Verificando a versão atual..." [ ! -x "$(which unzip)" ] && echo "Instalando... " && sudo apt install unzip 1> /dev/null 2>&1 -y # unzip instalado? mkdir -p /tmp/$cliente cp -r /dados/$cliente/standalone/deployments/webstart.war/sco2/digitacao.jar.pack.gz /tmp/$cliente /dados/jdk-11.0.5/bin/unpack200 /tmp/$cliente/digitacao.jar.pack.gz /tmp/$cliente/digitacao.jar 1> /dev/null 2>&1 versaoatual=$(unzip -p /tmp/$cliente/digitacao.jar version.properties | awk -F= '/^version=/ {print $2}') echo -e " " echo -e "A versão atual é: \"$versaoatual\"" echo -e " " echo -e "Abaixo, informe seu usuario e senha do Jenkins..." echo -e " " echo -e " https://jenkinstotalbus.rjconsultores.com.br " echo -e " " read -p "Digite seu USUÁRIO do Jenkins: " userj echo -e " " read -s -p "Digite sua SENHA do Jenkins: " passj echo -e " " echo -e "Validando usuario e senha..." echo -e " " validj=$(curl -s -w "%{http_code}" -su "$userj:$passj" -o /dev/null "https://jenkinstotalbus.rjconsultores.com.br" ; echo) if [[ "$validj" -eq 200 ]]; then echo "Usuário e senha validado com sucesso!" elif [[ "$validj" -eq 401 ]]; then echo -e "Usuário ou senha incorretos." echo -e "Tente novamente..." exit 0 else echo "Erro ao tentar logar. Código HTTP: $validj" echo -e "Finalizando script." exit 1 fi echo -e " " read -p "Informe o NÚMERO da versão do Digitação: " versaodig echo -e " " sleep 3 listclient=$(curl https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20Digitacao/$versaodig/artifact/firmar/ -su "$userj:$passj" | grep -oP '') portconsole=$(expr $portconf + 9990) sleep 1 time=$(date +%d-%m-%Y-%H-%M) mkdir -p /dados/bkp_DIG/$cliente-$time bkp=/dados/bkp_DIG/$cliente-$time cp -rv /dados/$cliente/standalone/deployments/webstart.war/sco2/digitacao.jar.pack.gz $bkp/digitacao.jar.pack.gz rm -rf /dados/$cliente/standalone/deployments/webstart.war/sco2/digitacao.jar.pack.gz* rm -rf /dados/$cliente/standalone/deployments/webstart.war/sco2/scopaf.conf* sleep 1 echo -e " " echo -e "Iniciando atualização do \"Digitação\" do cliente \"$cliente\" para versão \"$versaodig\"..." cp -rv /tmp/digitacao.jar.pack.gz /dados/$cliente/standalone/deployments/webstart.war/sco2/ chown -Rf $cliente:$cliente /dados/$cliente/standalone/deployments/webstart.war/sco2/ echo -e " " sleep 5 echo -e "Verificando nova versão..." echo -e " " /dados/jdk-11.0.5/bin/unpack200 /tmp/digitacao.jar.pack.gz /tmp/digitacao.jar 1> /dev/null 2>&1 versaonova=$(unzip -p /tmp/digitacao.jar version.properties | awk -F= '/^version=/ {print $2}') logt=$(date +%d-%m-%Y) echo -e "Gravando log da atualização em \"/dados/$cliente/standalone/log/atualizacao_$logt.log\" ..." feito=$(echo -e $userj | tr a-z A-Z) echo -e " " echo -e "Atualização do Digitação "$cliente" para versão "$versaonova" concluída!!! " echo -e " " echo -e " ---------------------------------------------------------------------------------- - Atualização ***Digitação*** - Data/Hora: $time - Atualizando cliente: $cliente - Versão antiga: $versaoatual - Versão NOVA: *** $versaonova *** - Arquivo baixado: $filedig - Backup salvo em \"$bkp/digitacao.jar.pack.gz\" - Console: http://$IPPRIV:$portconsole - Feito por: $feito ################################################################################################################ #- Em caso de Rollback execute os comandos abaixo: mv /dados/$cliente/standalone/deployments/webstart.war/sco2/digitacao.jar.pack.gz /tmp/digitacao.jar.pack.gz_RB rm -rf /dados/$cliente/standalone/deployments/webstart.war/sco2/scopaf.conf* cp -r $bkp/digitacao.jar.pack.gz /dados/$cliente/standalone/deployments/webstart.war/sco2/digitacao.jar.pack.gz chown -Rf $cliente:$cliente /dados/$cliente/standalone/deployments/webstart.war/sco2/ ################################################################################################################ ----------------------------------------------------------------------------------" >> /dados/$cliente/standalone/log/atualizacao_$logt.log rm -rf /tmp/digitacao* rm -rf /tmp/$cliente echo -e " " echo -e "- Versão antiga: $versaoatual" echo -e " " echo -e "- Nova Versão: $versaonova " echo -e " " echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################" exit 0 ;; *) echo "Opção inválida, tente novamente." exit 1 ;; esac