He estado leyendo muchas preguntas ya formuladas aquí, sin embargo, de alguna manera, nada funciona para mí. Tengo un script bash donde tengo que enviar una contraseña que volca la base de datos en una máquina remota, por lo que es así:
!/bin/sh
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p#8111*@uu( my_database | gzip -c > my_database.sql.gz
Ahora lo que pasa es que esta contraseña tiene todo tipo de caracteres especiales:
#8111*@uu(
Si ejecuto el comando anterior directamente en deberá usar la contraseña dentro de comillas simples, entonces funciona: es decir.
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p'#8111*@uu(' my_database | gzip -c > my_database.sql.gz
Sin comillas simples me sale un error con el '(' al final.
También traté de escapar de caracteres en contraseña como esta:
!/bin/sh
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p'\#8111\*\@uu(' my_database | gzip -c > my_database.sql.gz
Luego da acceso denegado error.
También traté de usar "fuente", es decir. guardar contraseña en otro archivo como:
Archivo pass.cre
MYPASSWORD='#8111*@uu('
Luego, incluya ese archivo en el 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 leyendo $ MYPASSWORD del archivo y luego nuevamente error de carácter no válido.
¿Algún consejo de lo que me estoy perdiendo?