Uzak bir sunucuda birkaç MySQL şemasının içeriğini otomatik olarak yedeklemek için bir kabuk komut dosyası (şu anda bash kullanıyor) yazmak istiyorum. Uzak sunucu yalnızca SSH erişimine izin vermek için kilitlendi, bu yüzden mysqldump
çeşitli şemalara karşı çalıştırmadan önce bir SSH tüneli oluşturmam gerekiyor .
Herhangi bir sorun olmadan bir tünel oluşturabilirim, ancak veritabanı dökümü tamamlandıktan sonra otomatik olarak kapatmak istiyorum.
Şu anda benim senaryom bunu yapıyor:
/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
Bağlantının 600 saniye boyunca açık tutulduğu yerlerde, ancak ilk dökümlerden biri bundan daha uzun sürerse, diğer dökümler tamamlanmadan bağlantı kapatılır. Her şema yedekleme için ayrı dosyaları tutmak istiyorum (bu yüzden şimdilik --databases
mysqldump önleyecektir ).
Herhangi bir öneri?