Closed brlink-org closed 1 year ago
Não resolveu o problema, não há tratamento de erro caso falhe ao conectar via ssh.
Verifiquei que o script fica lento pois o comando /export pode durar algum tempo e elevar a CPU a 100% especialmente em RB com pouco hardware, como por exemplo hAP lite.
Como sugestão não seria melhor o script apenas baixar um arquivo já pré existente ?
o comando print é executado no mk então vamos armazenar o resultado do comando de saída em uma variável
# Verificar se o arquivo existe no Mikrotik
IFILE_MK=$(sshpass -p $MK_PASS ssh $MK_USER@$MK_IP "file print where name=$MK_BCKP_FILE")
if [ -z "$IFILE_MK" ]; then
echo "Erro: arquivo não encontrado no Mikrotik"
exit 1
fi
Muitos erros nos testes ao tentar verificar se o arquivo existe, retorna sempre o primeiro caractere do comando print mesmo tentando depurar
# Verifica se o arquivo existe no Mikrotik
IFILE_MK=$(sshpass -p $MK_PASS ssh $MK_USER@$MK_IP "file print where name=$MK_BCKP_FILE" | awk 'NR>=2 {print $2}')
# Exibe o resultado do comando file print
echo "Resultado do comando file print:"
echo "$IFILE_MK"
# Exibe o valor da variável IFILE_MK
echo "Valor da variável IFILE_MK antes da verificação: $IFILE_MK"
# Verifica se o comando file print retornou pelo menos duas linhas
if [ "$(wc -l <<< "$IFILE_MK")" -ge 2 ]; then
# Pega o nome do arquivo da segunda linha
IFILE_MK=$(awk 'NR==2 {print $2}' <<< "$IFILE_MK")
fi
# Exibe o valor da variável IFILE_MK
echo "Valor da variável IFILE_MK depois da verificação: $IFILE_MK"
# Compara o nome do arquivo com o nome esperado
if [ "$IFILE_MK" != "$MK_BCKP_FILE" ]; then
echo "Erro: arquivo não encontrado no Mikrotik"
exit 1
fi
Melhor voltar um passo atrás e remover esta verificação se o existe no mikrotik, partindo do pressuposto que ele exista para tornar o script novamente funcional.
Retomar futuramente com algo do tipo:
# Verifica se o arquivo existe no Mikrotik
IFILE_MK=$(sshpass -p $MK_PASS ssh $MK_USER@$MK_IP "file print where name=$MK_BCKP_FILE" | grep "$MK_BCKP_FILE")
if [ -z "$IFILE_MK" ]; then
echo "Erro: arquivo não encontrado no Mikrotik"
exit 1
fi
Necessário fazer as verificações e tratamento de possíveis erros, porém nos testes realizados o script está funcional.
Fazer o script para conectar-se o Mikrotik via SSH e realizar backup.