You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

354 lines
13 KiB

#!/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