Я хотел бы написать скрипт оболочки (в настоящее время использующий 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).
Какие-либо предложения?