मैं एक दूरस्थ सर्वर पर कई MySQL स्कीमा की सामग्री को स्वचालित रूप से वापस करने के लिए एक शेल स्क्रिप्ट (वर्तमान में bash का उपयोग करके) लिखना चाहूंगा। रिमोट सर्वर केवल एसएसएच एक्सेस की अनुमति देने के लिए बंद है इसलिए मुझे 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 से बचना होगा )।
कोई सुझाव?