Ho letto molte domande già poste qui, tuttavia, in qualche modo nulla funziona per me. Ho uno script bash in cui devo inviare la password che scarica il database sul computer remoto, quindi è come:
!/bin/sh
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p#8111*@uu( my_database | gzip -c > my_database.sql.gz
Ora la cosa è che questa password ha ogni tipo di carattere speciale:
#8111*@uu(
Se corro sopra il comando direttamente in deve usare la password tra virgolette singole, allora funziona: ie.
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p'#8111*@uu(' my_database | gzip -c > my_database.sql.gz
Senza virgolette singole ricevo un errore per "(" alla fine.
Ho anche cercato di sfuggire ai personaggi con password in questo modo:
!/bin/sh
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p'\#8111\*\@uu(' my_database | gzip -c > my_database.sql.gz
Quindi dà accesso negato errore.
Ho anche provato a usare "source", cioè. salvare la password in un altro file come:
File pass.cre
MYPASSWORD='#8111*@uu('
Quindi includendo quel file nello 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
Sembra leggere $ MYPASSWORD dal file, quindi di nuovo un errore di carattere non valido.
Qualche consiglio su cosa mi sto perdendo?