2015-12-20 6 views
0

Я написал сценарий оболочки для автоматизации mysqldump. Я не хочу, чтобы мой пароль вводился в файл сценария. Может ли кто-нибудь предложить мне альтернативный способ сделать это?Сценарий оболочки с mysqldump

+0

@anubhava ummm ... было бы хорошей идеей сохранить пароль в ENV? – heemayl

+0

Он уже будет хранить его где-то в открытом виде. Я думаю, – anubhava

+0

Прочтите его из скрытого файла и убедитесь, что разрешение файла разрешает только вам/sysadmin читать файл. Я предполагаю, что у вас будет разрешение на выполнение для запуска сценария оболочки , –

ответ

1

Если вы используете сценарий интерактивно, вы можете использовать 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" 
+0

Я настраиваю скрипт в crontab. Поэтому сохранение его в переменной не является хорошим вариантом для меня. Если я могу сохранить в файле и изменить разрешение этого файла и указать путь в скрипте, то это здорово. – Naveen

+1

Похоже, вы можете, см. Часть моего ответа, которая начинается «Альтернативно», – Julian

Смежные вопросы