Fazendo meu Linux (Ubuntu) me perguntar o que é a senha SQL, então não vou armazená-lo no arquivo .sh?

0

Eu tenho um arquivo de script que faz um backup imediato da raiz de documentos do meu servidor e dos meus bancos de dados e copio para o meu sistema de terminal, do qual eu SSH tunelou para o meu ambiente de servidor:

(
cd /var/www/html
zip -r ./html.zip ./
mysqldump -u USER -p PASSWORD --all-databases > ./db.sql
zip backup.zip html.zip db.sql
scp backup.zip /home/user/backups
rm ./html.zip ./db.sql ./backup.zip
)

Meu problema:

Onde é SENHA, preciso digitar minha senha manualmente. Isso é algo que eu quero evitar porque eu internalizei essa senha em minha mente e também a utilizo com frequência, e não quero digitá-la dentro do script.

Meu ideal:

Preferiria receber a minha senha sempre que eu fizer o seguinte comando (ou algo assim):

mysqldump -u USER --all-databases > ./db.sql

Minha pergunta:

Ter tal possibilidade é possível através do próprio Linux ou através de algum utilitário existente?

    
por JohnDoea 08.04.2017 / 21:54

1 resposta

3

Do mysqldump manpage:

 o   --password[=password], -p[password]

           The password to use when connecting to the server. If you use the short option form (-p), you cannot have a space between the option and the password. If you omit the password value following the
           --password or -p option on the command line, mysqldump prompts for one.

           Specifying a password on the command line should be considered insecure. You can use an option file to avoid giving the password on the command line.

Apenas omita o valor da senha em -p flag e o mysqldump solicitará a senha.

    
por 08.04.2017 / 22:32