リモートサーバー上のいくつかのMySQLスキーマのコンテンツを自動的にバックアップするシェルスクリプト(現在はbashを使用)を記述したいと思います。リモートサーバーはSSHアクセスのみを許可するようにロックダウンされているためmysqldump
、さまざまなスキーマに対して実行する前にSSHトンネルを作成する必要があります。
問題なくトンネルを作成できますが、データベースのダンプが完了した後で自動的にトンネルを閉じたいと思います。
現在、私のスクリプトはこれを行っています:
/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
接続が600秒間開いたままになっている場合、明らかに、最初のダンプの1つがそれより長くかかる場合、他のダンプが完了する前に接続が閉じられます。スキーマバックアップごとに個別のファイルを保持したいので(--databases
今のところmysqldumpを回避します)。
助言がありますか?