我想编写一个shell脚本(当前使用bash)来自动备份远程服务器上几个MySQL模式的内容。远程服务器被锁定为仅允许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秒钟的情况下,显然,如果第一个转储花费的时间长于连接转储的时间,则在其他转储完成之前关闭连接。我想为每个架构备份保留单独的文件(因此暂时避免使用--databases
mysqldump)。
有什么建议?