ฉันต้องการเขียนเชลล์สคริปต์ (ปัจจุบันใช้ bash) เพื่อสำรองเนื้อหาของ MySQL schemas หลายตัวบนเซิร์ฟเวอร์ระยะไกลโดยอัตโนมัติ รีโมตเซิร์ฟเวอร์ถูกล็อคลงเพื่ออนุญาตการเข้าถึง 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 วินาทีอย่างไรก็ตามหากการทิ้งครั้งแรกใช้เวลานานกว่านั้นการเชื่อมต่อจะถูกปิดก่อนที่การถ่ายโอนข้อมูลอื่นจะเสร็จสมบูรณ์ ฉันต้องการเก็บไฟล์แยกต่างหากสำหรับการสำรอง schema แต่ละรายการ (ดังนั้นจะหลีกเลี่ยงการ--databases
mysqldump ในตอนนี้)
ข้อเสนอแนะใด ๆ