2015-12-20 59 views
0

我寫了一個shell腳本來自動化mysqldump。 我不希望在腳本文件中輸入我的密碼。任何人都可以建議我一個替代方法來做到這一點?帶mysqldump的shell腳本

+0

@anubhava ummm ...將密碼保存在ENV中是一個好主意嗎? – heemayl

+0

他將已經保持它某處明文我猜 – anubhava

+0

從一個隱藏的文件閱讀,並確保文件權限只允許你/系統管理員閱讀file.I'm假設你將有執行運行shell腳本的權限。 –

回答

1

如果您以交互方式運行腳本,則可以使用read將密碼讀取到環境變量中,然後將該密碼回顯給mysqldump。

read -s -p 'password: ' password 

echo "$password" | mysqldump ... 

密碼將以純文本形式存儲在內存中,但不在其他地方。您可以使用option file來避免在命令行上輸入密碼。該文件將包含類似於以下內容:

[client] 
# The following password will be sent to all standard MySQL clients 
password="my_password" 
+0

我正在crontab中設置腳本。因此將它存儲在一個變量中對我來說不是一個好選擇。如果我可以存儲在一個文件中,並更改該文件的權限並在腳本中指定路徑,那很好。 – Naveen

+1

看起來你可以看到我的答案開始的部分「或者」 – Julian