Eu tenho lido muitas perguntas já feitas aqui, no entanto, de alguma forma, nada está funcionando para mim. Eu tenho um script bash onde eu tenho que enviar senha que despejar banco de dados na máquina remota, então é como:
!/bin/sh
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p#8111*@uu( my_database | gzip -c > my_database.sql.gz
Agora a coisa é que essa senha tem todos os tipos de caracteres especiais:
#8111*@uu(
Se eu executar o comando acima diretamente no deve usar a senha entre aspas simples, então funciona: ie.
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p'#8111*@uu(' my_database | gzip -c > my_database.sql.gz
Sem aspas simples, recebo um erro com o '(' no final.
Eu também tentei escapar caracteres na senha como este:
!/bin/sh
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p'\#8111\*\@uu(' my_database | gzip -c > my_database.sql.gz
Em seguida, ele fornece erro de acesso negado.
Eu também tentei usar "fonte" ie. salvando a senha em outro arquivo como:
Arquivo pass.cre
MYPASSWORD='#8111*@uu('
Em seguida, incluindo esse arquivo no script bash:
!/bin/sh
source pass.cre
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p$MYPASSWORD my_database | gzip -c > my_database.sql.gz
Parece estar lendo $ MYPASSWORD do arquivo e, novamente, erro de caractere inválido.
Algum conselho do que estou perdendo?