alexandrenassil
(usa CentOS)
Enviado em 06/10/2021 - 16:29h
Caros, boa tarde!
sou novo no linux e estou enfrentando uma dificuldade que não consigo achar uma solução de forma alguma
estou desenvolvento um script em shell onde preciso listar os arquivos dentro de uma pasta e executalos em um comando para o mysql no caso é um restore de banco
dentro do shell tenho o comando
DIR_BKP=$(find /root/restore/* -type d | tail -n 1) >> $LOG_FILE 2>&1 # pega o caminho do diretorio
ao executar o comando: ls -l $DIR_BKP >> bkp_cadastro_tmp.txt >> $LOG_FILE 2>&1 dentro do shell script ele não cria o arquivo bkp_cadastro_tmp.txt, porem ele salva as informações no arquivo de log, se eu executar o mesmo comando direto no terminal o mesmo é executado corretamente.
como eu faço para armazenar as informações de dentro do diretorio em um arquivo.
se alguem puder me ajudar eu agradeço.
basicamente o script fara o seguinte
ele ira ler linha por linha e execurar o restore no mysql
o codigo que eu criei foi assim:
DIR_BKP=$(find /root/restore/* -type d | tail -n 1) >> $LOG_FILE 2>&1
echo $DIR_BKP >> $LOG_FILE 2>&1
ls -l $DIR_BKP >> bkp_cadastro_tmp.txt >> $LOG_FILE 2>&1
cat bkp_cadastro_tmp.txt | awk '{print $9}' >> bkp_cadastro.sql.txt
mysql -u $MYSQL_USER -p$MYSQL_PASS -e "set global log_bin_trust_function_creators = 1;" >> $LOG_FILE 2>&1
mysql -u $MYSQL_USER -p$MYSQL_PASS < $DIR_BKP/bkp_routines.sql >> $LOG_FILE 2>&1 # iniciar o restore com o arquivo routines.sql
sed -i 's/bkp_routines.sql/d' bkp_cadastro.sql.txt >> $LOG_FILE 2>&1
ARQUIVO=bkp_cadastro.sql.tmp.txt
while IFS= read -r LINHA || [[ -n "$LINHA" ]]; do
mysql -u $MYSQL_USER -p$MYSQL_PASS < $LINHA >> $LOG_FILE 2>&1 # subir todos os arquivos do restore de cadastro
done < "$ARQUIVO"