Sichern Sie alle plesk MySQL-Datenbanken in einzelne Dateien

0

Hy,

Da ich neu im Shell-Scripting bin, brauche ich eine Hand. Ich habe momentan alle meine Datenbanken in einer einzigen Datei gesichert, was die Wiederherstellung schwierig macht. Das zweite Problem, dass mein MySQL-Passwort aufgrund eines Plesk-Fehlers nicht funktioniert und ich das Passwort von "/etc/psa/.psa.shadow" erhalte. Hier ist der Code, mit dem ich alle meine Datenbanken in einer einzigen Datei sichern kann.

mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` --all-databases | bzip2 -c > /root/21.10.2013.sql.bz2

Ich habe im Web einige Skripte gefunden, die jede Datenbank in einzelne Dateien sichern, aber ich weiß nicht, wie ich sie für meine Situation verwenden kann. Hier ist ein Beispielskript:

for db in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $db | gzip > "/backups/mysqldump-$(hostname)-$db-$(date +%Y-%m-%d-%H.%M.%S).gz"; done

Kann mir jemand helfen, dass das obige Skript für meine Situation funktioniert? Bedarf:

  1. Sichern Sie jede Datenbank in einer individuellen Datei, indem Sie den Plesk-Kennwortspeicherort verwenden.
Michael
quelle

Antworten:

0

Versuche dies:

für db in $ (mysql -e 'show databases' -s --skip-column-names); Führen Sie mysqldump -uadmin -p`cat / etc / psa / .psa.shadow` $ db | aus bzip2 -c> "/ root / $ (Datum +% d-% m-% Y) .sql.bz2"; erledigt

Cybernard
quelle
FEHLER 1045 (28000): Zugriff für Benutzer 'root' @ 'localhost' verweigert (mit Passwort: NEIN). Dosen't Arbeit ... Und ich denke , der Name des Ausgabeordner falsch ist , sollte es "/ root / $ db - $ (date +% d-% m-% Y) .sql.bz2" sein
Michael
0

Um also jede Datenbank für PLESK in einzelne Dateien zu sichern und einige Dateien zu überspringen, habe ich den Code gefunden / erstellt:

for db in $(mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e 'show databases' -s --skip-column-names); do
if [[ "$db" != *schema* && "$db" != *phpmyadmin* && "$db" != "event" && "$db" != "psa" && "$db" != "mysql" ]]; then
mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` $db | bzip2 -c > /root/backup/mysql/$db.sql.bz2
fi
done

Fühlen Sie sich frei, diesen Code zu verbessern.

Michael
quelle
0

Versuchen:

for db in $(mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e 'show databases' -s --skip-column-names); do mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` --skip-lock-tables $db | gzip > "/var/www/mysql/mysqldump-$(hostname)-$db-$(date +%Y-%m-%d-%H.%M.%S).gz"; done

Dies funktioniert hervorragend, wenn es in Plesk Server :: Tested Use Path gemäß den Anforderungen verwendet wird.

mobithegrt5
quelle