mysql dump per script

Hallo,

ich habe mir ein kleines Script geschrieben, mit welchem ich mir per sql dump die entsprechende Datenbank sichere, aber ich würde dieses script gern so an passen, das der Dateiname das Datum enthält, so das immer unterschiedliche Versionen entstehen…ist das möglich???

hier mein kleines script:

mysqldump --user=myuser --password=mypassword --database mydb --opt --quote-names --allow-keywords --complete-insert -c /backup/mydb_dump.sql

und ich hätte gern, das der dateiname generiert wird mit dem Datum …

aber wie???

mysqldump --user=myuser --password=mypassword --database mydb --opt --quote-names --allow-keywords --complete-insert -c /backup/mydb_$(date '+%F')_dump.sql

Hallo,

ich bin mir nicht ganz sicher, aber so wie ich das sehe, wird das Passwort so während der Laufzeit für alle Benutzer des Systems sichtbar sein über Beispielsweise ps aux. Wenn das ein Problem darstellt, dann kann man auch im home Verzeichnis des ausführenden Benutzers eine Datei namens .my.cnf erstellen mit folgendem Inhalt:

[client]
user = <user name>
password = <secret password>

Have a lot of fun

ok das mit dem Datum musste ich noch anpassen…stimmt ja im Script bin ich ja auf dem MySql und da kann ich das auch darüber abfragen … ist ja dann keine System abfrage ( manchmal sieht man den Wald vor Bäumen nicht :slight_smile: ) danke

hier nun das Script :

mysqldump --user=myuser–password=mypassword --databases mydb --opt --quote-names --allow-keywords --complete-insert -c > /backup/db/mydb_date +%m-%d-%Y.sql

aber wie mach ich das mit dieser .my.cnf ?? also mit der Verwendung ???

Hallo,

das ist ganz einfach, einfach im home Verzeichnis ($HOME) des Benutzers der das Skript ausführt eine Datei anlegen mit dem namen .my.cnf. Dort wird dann der Datenbank-Benutzer angegeben sowie das entsprechende Passwort für diesen Benutzer:


[client]
user = myuser
password = mypassword

Anschließend kann man einfach die Optionen --user=myuser --password=mypassword weglassen, da der mysqlclient diese Daten aus der .my.cnf bezieht, so dass diese nicht mehr via ps aux für andere lokale Benutzer mit Shell Zugang sichtbar sind.