Eu tenho um arquivo de script que faz um backup imediato da raiz do documento do meu servidor e dos meus bancos de dados e o copia para o meu sistema de terminal, a partir do qual fiz o tunelamento SSH para o ambiente do meu 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 for SENHA, preciso digitar minha senha manualmente. Isso é algo que quero evitar porque internalizei essa senha em minha mente e também a uso com frequência, e não quero digitá-la dentro do script.
Meu ideal:
Prefiro que minha senha seja solicitada sempre que executar o seguinte comando (ou algo desse tipo):
mysqldump -u USER --all-databases > ./db.sql
Minha pergunta:
É possível ter esse prompt através do próprio Linux ou de algum utilitário existente?
Responder1
Na página de manual do mysqldump:
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 no -p
sinalizador e o mysqldump solicitará a senha.