Я написал сценарий оболочки для автоматизации mysqldump. Я не хочу, чтобы мой пароль вводился в файл сценария. Может ли кто-нибудь предложить мне альтернативный способ сделать это?Сценарий оболочки с mysqldump
ответ
Если вы используете сценарий интерактивно, вы можете использовать read
, чтобы прочитать пароль в переменной окружения, а затем повторить этот пароль для mysqldump.
read -s -p 'password: ' password
echo "$password" | mysqldump ...
Пароль будет храниться в виде простого текста в памяти, но не в других местах.
В качестве альтернативы в соответствии с the documentation вы можете использовать option file, чтобы избежать ввода пароля в командной строке. Файл будет содержать что-то похожее на следующее:
[client]
# The following password will be sent to all standard MySQL clients
password="my_password"
Я настраиваю скрипт в crontab. Поэтому сохранение его в переменной не является хорошим вариантом для меня. Если я могу сохранить в файле и изменить разрешение этого файла и указать путь в скрипте, то это здорово. – Naveen
Похоже, вы можете, см. Часть моего ответа, которая начинается «Альтернативно», – Julian
@anubhava ummm ... было бы хорошей идеей сохранить пароль в ENV? – heemayl
Он уже будет хранить его где-то в открытом виде. Я думаю, – anubhava
Прочтите его из скрытого файла и убедитесь, что разрешение файла разрешает только вам/sysadmin читать файл. Я предполагаю, что у вас будет разрешение на выполнение для запуска сценария оболочки , –