Je voudrais écrire un script shell (utilisant actuellement bash) pour sauvegarder automatiquement le contenu de plusieurs schémas MySQL sur un serveur distant. Le serveur distant est verrouillé pour autoriser uniquement l'accès SSH, je dois donc créer un tunnel SSH avant de courir mysqldump
contre les différents schémas.
Je peux créer un tunnel sans aucun problème, mais j'aimerais pouvoir le fermer automatiquement une fois le vidage de la base de données terminé.
Actuellement mon script fait ceci:
/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
Lorsque la connexion est maintenue ouverte pendant 600 secondes, il est évident cependant que si l'un des premiers vidages prend plus de temps, la connexion est fermée avant la fin des autres vidages. Je voudrais conserver des fichiers séparés pour chaque sauvegarde de schéma (évitez donc le --databases
mysqldump pour l'instant).
Aucune suggestion?