forked from SimplesIP/pabx-app
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
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 |