Я хотів би написати сценарій оболонки (в даний час використовує bash) для автоматичного резервного копіювання вмісту декількох схем MySQL на віддаленому сервері. Віддалений сервер заблокований, щоб дозволити доступ лише до SSH, тому я повинен створити тунель SSH перед тим, як працювати mysqldump
з різними схемами.
Я можу створити тунель без жодних проблем, проте я хотів би мати можливість його автоматично закрити після завершення скидання бази даних.
Наразі мій сценарій робить це:
/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 секунд, очевидно, однак, якщо один з перших смітників займає більше часу, ніж тоді, то з'єднання буде закрито до того, як інші відвалки завершаться. Я хотів би зберегти окремі файли для кожної резервної копії схеми (так що поки що не буде --databases
mysqldump).
Будь-які пропозиції?