Я читав тут уже багато запитань, однак якось нічого не працює для мене. У мене є скрипт bash, куди я мушу надсилати пароль, який скидає базу даних на віддаленій машині, так це:
!/bin/sh
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p#8111*@uu( my_database | gzip -c > my_database.sql.gz
Тепер справа в тому, що цей пароль має всілякі особливі символи:
#8111*@uu(
Якщо я запускаю вище команду безпосередньо, використовуючи пароль всередині одиничних лапок, то вона працює: тобто.
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p'#8111*@uu(' my_database | gzip -c > my_database.sql.gz
Без одинарних лапок я отримую помилку для '(' наприкінці).
Я також намагався уникнути символів у такому паролі:
!/bin/sh
/usr/bin/ssh -p 91899 user@remoteHost mysqldump -u db_user -p'\#8111\*\@uu(' my_database | gzip -c > my_database.sql.gz
Потім він надає доступ до відхиленої помилки.
Я також намагався використовувати "джерело", тобто. збереження пароля в іншому файлі як:
Файл pass.cre
MYPASSWORD='#8111*@uu('
Потім включіть цей файл у bash script:
!/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
Здається, він читає $ MYPASSWORD з файлу, а потім знову помилка недійсного символу.
Якась порада, чого мені не вистачає?