Vorrei scrivere uno script di shell (attualmente usando bash) per eseguire automaticamente il backup del contenuto di diversi schemi MySQL su un server remoto. Il server remoto è bloccato per consentire solo l'accesso SSH, quindi devo creare un tunnel SSH prima di eseguire mysqldump
contro i vari schemi.
Posso creare un tunnel senza alcun problema, tuttavia mi piacerebbe essere in grado di chiuderlo automaticamente dopo il completamento del dump del database.
Attualmente la mia sceneggiatura sta facendo questo:
/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
Se la connessione viene mantenuta aperta per 600 secondi, ovviamente se uno dei primi dump richiede più tempo, la connessione viene chiusa prima del completamento degli altri dump. Vorrei conservare file separati per ogni backup dello schema (quindi --databases
per il momento eviterò di mysqldump).
Eventuali suggerimenti?