Kann ich mein Linux (Ubuntu) so einrichten, dass es mich nach dem SQL-Passwort fragt, damit ich es nicht in der .sh-Datei speichere?

Kann ich mein Linux (Ubuntu) so einrichten, dass es mich nach dem SQL-Passwort fragt, damit ich es nicht in der .sh-Datei speichere?

Ich habe eine Skriptdatei, die eine sofortige Sicherungskopie des Dokumentstammverzeichnisses meines Servers und meiner Datenbanken erstellt und diese auf mein Terminalsystem kopiert, von dem aus ich per SSH eine Verbindung zu meiner Serverumgebung hergestellt habe:

(
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
)

Mein Problem:

Wo PASSWORD steht, muss ich mein Passwort manuell eingeben. Das möchte ich vermeiden, weil ich dieses Passwort verinnerlicht habe und es auch häufig verwende und es nicht in das Skript eingeben möchte.

Mein Ideal:

Ich möchte lieber jedes Mal nach meinem Kennwort gefragt werden, wenn ich den folgenden Befehl (oder etwas Ähnliches) ausführe:

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

Meine Frage:

Ist eine solche Eingabeaufforderung über Linux selbst oder über ein vorhandenes Dienstprogramm möglich?

Antwort1

Aus der 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.

Lassen Sie einfach den Kennwortwert im -pFlag weg und mysqldump fordert Sie zur Eingabe des Kennworts auf.

verwandte Informationen