#!/bin/bash trap "" 2 20 #Descobrindo o caminho do script dir=$(dirname $0) path_arquivo=$(cd $dir;pwd) clear echo ' ' echo ' _____ _ __ _____ ________ ' echo ' / ___/(_)___ ___ ____ / /__ / ___/ / _/ __ \' echo ' \__ \/ / __ `__ \/ __ \/ / _ \\__ \ / // /_/ /' echo ' ___/ / / / / / / / /_/ / / __/__/ / _/ // ____/ ' echo '/____/_/_/ /_/ /_/ .___/_/\___/____/ /___/_/ ' echo ' /_/ ' echo ' ' #Verifica se o script esta rodando if [ -e /tmp/sip_atualiza_patch.pid ] ; then echo "Script em Excecucao..." exit fi #Gera PID do scritp echo $$ > /tmp/sip_atualiza.pid #Variaveis arquitetura=$(uname -m) versao_linux=$(cat /etc/redhat-release | sed 's/[a-zA-Z() ]//g' | cut -d "." -f 1) #Verifica encoding if [ "$versao_linux" = "7" ] ; then encode=$(cat /etc/locale.conf | tr [[:upper:]] [[:lower:]] | sed -e "s/\"//g" | grep "^lang") else encode=$(cat /etc/sysconfig/i18n | tr [[:upper:]] [[:lower:]] | sed -e "s/\"//g" | grep "^lang") fi if ! [ "$encode" = "lang=en_us.iso-8859-1" ] ; then clear echo -n "Encoding: $encode incorreto, deseja corrigir e reiniciar o servidor? (S/N):" read -n 1 resposta echo "" if [[ $resposta != +(s|S|y|Y|sim|SIM) ]] ; then /bin/rm -rf /tmp/sip_atualiza_patch.pid exit fi [ "$versao_linux" = "7" ] && sed -i "s/^LANG=.*/LANG=\"en_US.ISO-8859-1\"/g" /etc/locale.conf [ "$versao_linux" = "6" ] && sed -i "s/^LANG=.*/LANG=\"en_US.ISO-8859-1\"/g" /etc/sysconfig/i18n clear echo "Reiniciando..." for i in {5..1};do sleep 1 && echo -n "$i ";done echo "" echo "Recomece a atualizacao" /bin/rm -rf /tmp/sip_atualiza_patch.pid [ -e /sbin/reboot ] && /sbin/reboot reboot fi #Diretorios ! [ -d /hdaux/downloads ] && mkdir -p /hdaux/downloads ! [ -d /hdaux/atualizacao ] && mkdir -p /hdaux/atualizacao ! [ -d /hdaux/utilitarios/scripts ] && mkdir -p /hdaux/utilitarios/scripts ! [ -d /hdaux/utilitarios/ferramentas ] && mkdir -p /hdaux/utilitarios/ferramentas ! [ -d /hdaux/utilitarios/manuais ] && mkdir -p /hdaux/utilitarios/manuais ! [ -d /hdaux/backup ] && mkdir -p /hdaux/backup ! [ -d /hdaux/restore ] && mkdir -p /hdaux/restore ! [ -d /etc/asterisk ] && mkdir -p /etc/asterisk ! [ -d /var/lib/asterisk ] && mkdir -p /var/lib/asterisk ! [ -d /var/run/asterisk ] && mkdir -p /var/run/asterisk ! [ -d /hdaux/downloads ] && mkdir -p /hdaux/downloads ! [ -d /var/log/logs_antigos/httpd ] && mkdir -p /var/log/logs_antigos/httpd ! [ -d /var/log/logs_antigos/nginx ] && mkdir -p /var/log/logs_antigos/nginx ! [ -d /var/log/logs_antigos/php-fpm ] && mkdir -p /var/log/logs_antigos/php-fpm ! [ -d /var/log/logs_antigos/ppp ] && mkdir -p /var/log/logs_antigos/ppp ! [ -d /var/log/logs_antigos/syslog ] && mkdir -p /var/log/logs_antigos/syslog ! [ -d /var/log/logs_antigos/audit ] && mkdir -p /var/log/logs_antigos/audit ! [ -d /var/log/logs_antigos/asterisk ] && mkdir -p /var/log/logs_antigos/asterisk ! [ -d /var/log/logs_antigos/asterisk/cdr-csv ] && mkdir -p /var/log/logs_antigos/asterisk/cdr-csv ! [ -d /var/log/logs_antigos/ntp ] && mkdir -p /var/log/logs_antigos/ntp [ -e /etc/logrotate.d/httpd ] && rm -rf /etc/logrotate.d/httpd [ -e /etc/logrotate.d/nginx ] && rm -rf /etc/logrotate.d/nginx [ -e /etc/logrotate.d/php-fpm ] && rm -rf /etc/logrotate.d/php-fpm [ -e /etc/logrotate.d/ppp ] && rm -rf /etc/logrotate.d/ppp [ -e /etc/logrotate.d/syslog ] && rm -rf /etc/logrotate.d/syslog #Atualizando scripts de apoio cd $path_arquivo/ [ -e /hdaux/utilitarios/scripts/algar.sh ] && /bin/mv -f /hdaux/utilitarios/scripts/algar.sh asterisk/hdaux_utilitarios_scripts/ rm -rf /hdaux/utilitarios/scripts/* /bin/cp -Rapf asterisk/hdaux_utilitarios_scripts/* /hdaux/utilitarios/scripts/ [ "0" != $(ls -1 /hdaux/utilitarios/scripts/ | grep ".sh" | wc -l) ] && chmod 777 /hdaux/utilitarios/scripts/*.sh [ "0" != $(ls -1 /hdaux/utilitarios/scripts/ | grep ".php" | wc -l) ] && chmod 755 /hdaux/utilitarios/scripts/*.php /bin/cp -Rapf /hdaux/utilitarios/scripts/manutencao.sh /home/manutencao/ #Gerando backup /hdaux/utilitarios/scripts/backup.sh #Atualizando arquivos de configuracao clear echo "Atualizando /etc/asterisk" cd $path_arquivo/ /bin/cp -Rapf asterisk/etc_asterisk/default_asterisk/* /etc/asterisk/ /bin/cp -Rapf asterisk/etc_asterisk/editado_manual/* /etc/asterisk/ ls -1 /etc/asterisk/ | while read LINHA ; do rm -rf asterisk/etc_asterisk/editado_aplicacao/"$LINHA" ; done ! [ -z $(ls asterisk/etc_asterisk/editado_aplicacao/) ] && /bin/cp -Rapf asterisk/etc_asterisk/editado_aplicacao/* /etc/asterisk/ #Ajusta o nome das filas para Maiusculo for i in $(grep "^\[" /etc/asterisk/queues_filas.conf | grep "^\[" /etc/asterisk/queues_filas.conf| sed -e "s/\[//g" | sed -e "s/\]//g") ; do novo=$(echo $i | tr [a-z] [A-Z]) && sed -i "s/^\[$i.*\]/[$novo]/g" /etc/asterisk/queues_filas.conf ; done #Atualizando scripts e arquivos de sons echo "Atualizando /var/lib/asterisk" /bin/cp -rf var_lib_asterisk.tar.gz /var/lib/asterisk/ cd /var/lib/asterisk/ tar xzf var_lib_asterisk.tar.gz rm -rf var_lib_asterisk/astdb* rm -rf var_lib_asterisk/moh rm -rf var_lib_asterisk/sounds/customizados if [ -e /var/lib/asterisk/scripts/vendas/consolidaVendas.php ] ; then /bin/rm -rf var_lib_asterisk/scripts/vendas/consolidaVendas.php /bin/cp -Rapf /var/lib/asterisk/scripts/vendas/consolidaVendas.php var_lib_asterisk/scripts/vendas/ fi #config_cliente=$(ls -1 /var/lib/asterisk/scripts/portabilidade/configCliente.php) #if ! [ -z "$config_cliente" ] ; then if [ -e /var/lib/asterisk/scripts/portabilidade/configCliente.php ] ; then rm -rf var_lib_asterisk/scripts/portabilidade/configCliente.php cp -Rap /var/lib/asterisk/scripts/portabilidade/configCliente.php var_lib_asterisk/scripts/portabilidade/ fi [ -e astdb ] && /bin/cp -Rapf astdb var_lib_asterisk/ /bin/cp -Rapf moh var_lib_asterisk/ /bin/cp -Rapf sounds/customizados var_lib_asterisk/sounds/ ls | grep -v var_lib_asterisk | xargs rm -rf mv var_lib_asterisk/* ./ rm -rf var_lib_asterisk* [ -e astdb ] && /bin/rm -rf astdb.sqlite3 && astdb2sqlite3 astdb && rm -rf astdb #Subindo arquivos de son para a aplicacao cd /var/lib/asterisk/sounds/customizados/ for i in $(ls -1 *.ulaw) ; do path_asterisk="/var/lib/asterisk/sounds/customizados" arquivo_ulaw=$i arquivo_mp3=$(echo $i | sed -e 's/.ulaw/.mp3/g') if [ -e arquivos_mp3/$arquivo_mp3 ] then path_mp3="$path_asterisk/arquivos_mp3/$arquivo_mp3" elif [ -e mp3/$arquivo_mp3 ] then path_mp3="$path_asterisk/mp3/$arquivo_mp3" elif [ -e $arquivo_mp3 ] then path_mp3="$path_asterisk/$arquivo_mp3" fi ! [ -d arquivos_mp3 ] && mkdir arquivos_mp3 arq_nome=$(echo $i | sed -e 's/.ulaw//g') arq_path_destino="$path_asterisk/$arquivo_ulaw" arq_dest_tamanho=$(du -sb $arq_path_destino | awk '{print $1}') userreg="script.sip_atualiza" if ! [ -z $path_mp3 ] ; then arq_path_origem="$path_asterisk/$arquivo_mp3" arq_orig_tamanho=$(du -sb $path_mp3 | awk '{print $1}') arq_md5=$(md5sum $path_mp3 | awk '{print $1}') fi arquivo_existe=$(psql -Atc "select count(*) from pbx_arquivo_som where arq_path_destino = '$arq_path_destino'" -d pbx) if [ "$arquivo_existe" = "0" ] ; then [ -z $arq_orig_tamanho ] && arq_orig_tamanho=0 psql -c "INSERT INTO pbx_arquivo_som(arq_data, arq_nome, arq_nome_sistema, arq_descricao, arq_path_origem, arq_path_destino, arq_orig_tamanho, arq_dest_tamanho, arq_md5, userreg, datareg) VALUES (now(), '$arq_nome', '$arq_nome', '$arq_nome', '$arq_path_origem', '$arq_path_destino', '$arq_orig_tamanho', '$arq_dest_tamanho', '$arq_md5', '$userreg', now())" -d pbx if ! [ -e $path_asterisk/arquivos_mp3/$arquivo_mp3 ] ; then ! [ -z $path_mp3 ] && /bin/mv -f $path_mp3 $path_asterisk/arquivos_mp3/$arquivo_mp3 fi fi arq_nome="" arq_path_origem="" arq_path_destino="" arq_orig_tamanho="" arq_dest_tamanho="" arq_md5="" userreg="" path_mp3="" done /bin/cp -Rapf *.mp3 arquivos_mp3/ /bin/cp -Rapf mp3/*.mp3 arquivos_mp3/ /bin/rm -rf *.mp3 [ -d mp3 ] && /bin/rm -rf mp3 #Atualizando o aplicativo (site) echo "Atualizando /var/www/html" cd $path_arquivo/ logo_workflow=$(psql -Atc "select wkf_logo_parceiro from pbx_workflow_parametros" -d pbx) ! [ -z "$logo_workflow" ] && /bin/mv -f /var/www/html/aplicativo/imgSite/$logo_workflow ./ logo_relatorio=$(psql -Atc "select prm_logo_relatorio from pbx_parametros" -d pbx) [ -e /var/www/html/aplicativo/imgSite/$logo_relatorio ] && /bin/mv -f /var/www/html/aplicativo/imgSite/$logo_relatorio ./ data_corte=$(grep "^dataCorteRelatorio" /var/www/html/aplicativo/configs/config.ini) [ -d /var/www/html/aplicativo ] && rm -rf /var/www/html/aplicativo* [ -d /var/www/html/agenda ] && rm -rf /var/www/html/agenda* [ -d /var/www/html/include ] && rm -rf /var/www/html/include* tar xzf aplicativo_site.tar.gz sleep 2 /bin/mv -f aplicativo_site/* /var/www/html/ [ -e "$logo_workflow" ] && /bin/mv -f $logo_workflow /var/www/html/aplicativo/imgSite/ [ -e "$logo_relatorio" ] && /bin/mv -f $logo_relatorio /var/www/html/aplicativo/imgSite/ cd $path_arquivo/ psql -c "delete from pbx_funcoes" -d pbx psql -c "delete from pbx_funcoes_internas" -d pbx psql -c "delete from pbx_supervisor_dacs" -d pbx #Ajuste autoloff no agente psql -c "update pbx_parametros set autologoffunavail = 'no'" -d pbx sed -i "s/autologoffunavail=.*/autologoffunavail=no/g" /etc/asterisk/agents_adicional.conf #Ferramentas e Manuais cd $path_arquivo/ #[ "0" != $(ls -1 ferramentas/ | wc -l) ] && /bin/rm -rf /hdaux/utilitarios/ferramentas/* && /bin/cp -Rapf ferramentas/* /hdaux/utilitarios/ferramentas/ #[ "0" != $(ls -1 manuais/ | wc -l) ] && /bin/rm -rf && /hdaux/utilitarios/manuais/* && /bin/cp -Rapf manuais/* /hdaux/utilitarios/manuais/ [ -d /hdaux/utilitarios/ferramentas ] && /bin/rm -rf /hdaux/utilitarios/ferramentas [ -d /hdaux/utilitarios/manuais ] && /bin/rm -rf /hdaux/utilitarios/manuais /bin/cp -Rapf ferramentas /hdaux/utilitarios/ /bin/cp -Rapf manuais /hdaux/utilitarios/ #Ajuste de permissoes da aplicacao echo "Configurando permissoes" /hdaux/utilitarios/scripts/permissoes_atualizacao.sh #Reiniciando os servicos echo "Reiniciando os servicos" asterisk -rx "module reload app_queue.so" if [ "$versao_linux" = "7" ] ; then [ -e /var/run/nginx.pid ] && /bin/systemctl stop nginx.service sleep 1 [ -e /var/run/php-fpm/php-fpm.pid ] && /bin/systemctl stop php-fpm.service sleep 1 [ -e /etc/httpd/run/httpd.pid ] && /bin/systemctl restart httpd.service sleep 1 /bin/systemctl restart postgresql.service sleep 2 /bin/systemctl restart sshd.service sleep 2 /etc/init.d/supervisor restart sleep 2 /bin/systemctl enable httpd.service /bin/systemctl enable postgresql.service /bin/systemctl enable sshd.service /bin/systemctl enable ntpd.service /bin/systemctl enable ntpdate.service /bin/systemctl enable rc.pbx.service /bin/systemctl enable dahdi.service /bin/systemctl enable crond.service /bin/systemctl enable supervisor.service else [ -e /var/run/nginx.pid ] && service nginx stop sleep 1 [ -e /var/run/php-fpm/php-fpm.pid ] && service php-fpm stop sleep 1 [ -e /etc/httpd/run/httpd.pid ] && service httpd stop sleep 1 service httpd start sleep 2 service postgresql restart sleep 2 service sshd restart sleep 2 /etc/init.d/supervisor restart sleep 2 chkconfig --level 35 httpd on chkconfig --level 35 postgresql on chkconfig --level 35 rc.pbx on chkconfig --level 35 dahdi on chkconfig --level 35 ntpd on chkconfig --level 35 crond on chkconfig --level 35 supervisor on fi cd $path_arquivo/ sed -i "/.*queue_log.pid.*/d" /etc/rc.local echo "[ -e /tmp/queue_log.pid ] && /bin/rm -rf /tmp/queue_log.pid" >> /etc/rc.local [ -d banco ] && /bin/mv -f banco /hdaux/atualizacao/banco-$(date +%F-%H-%M-%S) /bin/rm -rf /root/anaconda-ks.cfg /bin/rm -rf /root/instalacao-simplesip.log /bin/rm -rf /root/install.log /bin/rm -rf /root/install.log.syslog /bin/rm -rf /root/script_pos*.log /bin/rm -rf /var/log/instaladores_simplesip.log /bin/rm -rf $path_arquivo /bin/rm -rf /tmp/pjproject-* cd .. /bin/rm -rf atualizacao-*.tar.gz /bin/rm -rf instaladores_simplesip /bin/rm -rf sip_*.sh /bin/rm -rf aplicativo-simplesip_*.tar.gz cd .. /bin/rm -rf atualizacao-*.tar.gz /bin/rm -rf aplicativo-simplesip_*.tar.gz /bin/rm -rf /tmp/ks-script* sed -i "/\(.*sip_vpn\.sh.*\)/d" /root/.bashrc curl --data "loginUser=admin&loginPass=SiP1029384756" http://127.0.0.1 > /dev/null 2>&1 sleep 1 if ! [ -e /hdaux/cliente ] ; then echo -n "Digite o nome do cliente, para identificacao nos alertas via e-mail:" read resposta echo $resposta | sed 's/ //g' > /hdaux/cliente fi echo -n "Atualizacao concluida, deseja reiniciar? (S/N):" read -n 1 resposta echo "" if [[ $resposta != +(s|S|y|Y|sim|SIM) ]] ; then /bin/rm -rf /tmp/sip_atualiza_patch.pid exit fi echo "Reiniciando..." for i in {5..1};do sleep 1 && echo -n "$i ";done echo "" /bin/rm -rf /tmp/sip_atualiza_patch.pid [ -e /sbin/reboot ] && /sbin/reboot reboot