File: //usr/local/locaweb/bin/lwcorp_fix_db_restore.sh
#!/bin/bash
# VARS e FUNCTIONS
. /etc/lwcorp/lwcorp.functions
DB_RESTORE_DIR="/var/tmp/bacula-restores"
# Verifica se o diretorio /var/tmp/bacula-restores existe
if [ -d $DB_RESTORE_DIR ]; then
RESTORES_DISPONIVEIS="$(ls -l $DB_RESTORE_DIR | grep ^d | awk '{print$9}')"
# Verifica se o diretorio /var/tmp/bacula-restores esta vazio
if [ -z $RESTORES_DISPONIVEIS ];then
# Nao ha restores disponiveis em /var/tmp/bacula-restores
echo "$LOGDATE - [O diretorio $DB_RESTORE_DIR esta vazio. Processo cancelado]" >> $LOGFILE;
dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nNAO HA RESTORES DISPONIVEIS EM $DB_RESTORE_DIR.\n\nPROCESSO CANCELADO." 9 65
exit 1
else
# Seleciona o diretorio a ser ajustado
RESTORE_SELECIONADO=$(dialog --backtitle "$LWCORPHEADER" --stdout --radiolist "\nSELECIONE O RESTORE DESEJADO:" 0 0 0 `for a in $RESTORES_DISPONIVEIS; do echo "$a '' off"; done`)
if [ -z $RESTORE_SELECIONADO];then
# Printa erro; O analista nao selecionou um diretorio
echo "$LOGDATE - [Analista nao selecionou o restore e/ou cancelou a configuracao de fixowner]" >> $LOGFILE;
dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nVOCE NAO SELECIONOU UM RESTORE.\n\nPROCESSO CANCELADO." 9 65
exit 1
else
DIRETORIO_ALVO="$DB_RESTORE_DIR/$RESTORE_SELECIONADO"
# Printa o diretorio selecionado e pede confirmacao:
echo "$LOGDATE - [Analista selecionou o restore $RESTORE_SELECIONADO. Aguardando confirmacao]" >> $LOGFILE;
dialog --backtitle "$LWCORPHEADER" --title "$TITLECONFIRMACAO" --yesno "\nPATH: $DIRETORIO_ALVO\n\nVOCE DESEJA PROSSEGUIR?\n\n" 9 65
# Se o analista responder yes, entra em '0'. Qualquer outra resposta entra como '*':
case $? in
0) chmod 755 $DIRETORIO_ALVO;;
*) echo "$LOGDATE - [Processo cancelado pelo analista]" >> $LOGFILE;
dialog --backtitle "$LWCORPHEADER" --title "$TITLE" --msgbox "OK. CANCELADO." 7 65; exit 1;;
esac
# Verifica a saĆda do comando chmod: Se sair com '0' (exit 0), encerra e o script e sai com 0 tb
# Se algo der errado no chmod, a saida sera diferene de 0. Nesse caso, o script encerra com exit 1.
case $? in
0) echo "$LOGDATE - [Permissao corrigida em $DIRETORIO_ALVO]" >> $LOGFILE;
dialog --backtitle "$LWCORPHEADER" --title "$TITLESUCESSO" --msgbox "\nPERMISSAO CORRIGIDA COM SUCESSO." 7 65; exit 0;;
*) echo "$LOGDATE - [Erro no ajuste de permissao em $DIRETORIO_ALVO]" >> $LOGFILE;
dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nOCORREU UM ERRO AO SETAR PERMISSAO EM $DIRETORIO_ALVO. VERIFICAR." 7 65; exit 1;;
esac
fi
fi
else
# Caso o diretorio /var/tmp/bacula-restores nao exista, exibe erro:
echo "$LOGDATE - [O diretorio $DB_RESTORE_DIR nao existe no servidor. Configuracao cancelada]" >> $LOGFILE;
dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nDIRETORIO $DB_RESTORE_DIR NAO EXISTE.\n\nPROCESSO CANCELADO." 9 65
exit 1
fi