Ich möchte ein Shell-Skript schreiben (derzeit mit Bash), um den Inhalt mehrerer MySQL-Schemas auf einem Remote-Server automatisch zu sichern. Der Remote-Server ist gesperrt, um nur den SSH-Zugriff zuzulassen. Daher muss ich einen SSH-Tunnel erstellen, bevor ich mit mysqldump
den verschiedenen Schemas arbeiten kann.
Ich kann einen Tunnel ohne Probleme erstellen, möchte ihn jedoch nach Abschluss des Datenbank-Dumps automatisch schließen können.
Derzeit macht mein Skript Folgendes:
/usr/bin/ssh -T -f -L 4444:127.0.0.1:3306 -l remoteuser 208.77.188.166 sleep 600
/usr/bin/mysqldump --compress -h 127.0.0.1 -P 4444 -u user -ppassword db1 | gzip > /root/backups/snapshot/db1.sql.gz
/usr/bin/mysqldump --compress -h 127.0.0.1 -P 4444 -u user -ppassword db2 | gzip > /root/backups/snapshot/db2.sql.gz
/usr/bin/mysqldump --compress -h 127.0.0.1 -P 4444 -u user -ppassword db3 | gzip > /root/backups/snapshot/db3.sql.gz
Wenn die Verbindung 600 Sekunden lang offen gehalten wird. Wenn jedoch einer der ersten Speicherauszüge länger dauert, wird die Verbindung geschlossen, bevor die anderen Speicherauszüge abgeschlossen sind. Ich möchte für jede Schemasicherung separate Dateien behalten (daher wird --databases
mysqldump vorerst vermieden).
Irgendwelche Vorschläge?