• 締切済み

自サーバから別DBサーバのdumpをとり転送したい

1台のサーバ内にDBとそれを利用しているシステム(perl)があります。 サーバを買い換えてDBとシステムを別々のサーバにのせることになり、今までperlで走らせていたDBのdumpをとる処理が動かなくなってしまいました。 今は手動でとっているのですが、処理としてperlで組めないでしょうか? (システムを利用した時にdumpをとりたいのでDBサーバでのcronではちょっと役不足です) dumpをとるためには、別サーバへシェルスクリプトをキックする必要があるのですが、これは可能なのでしょうか。 もし可能でしたらperlでどのように記述すればできるのか、以下の処理の記述についてアドバイスをお願いいたします。 1.DBのdumpをとる 2.WEBサーバに転送する 3.WEBサーバにあるdumpからDBを復元する

みんなの回答

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

perl だけだと難しいので、perl の system 関数で ssh(Secure Shell) を 使ってリモートホストのスクリプトをキックすればよいでしょう。 > 1.DBのdumpをとる system "ssh リモートホスト /path/to/dump/script.sh"; > 2.WEBサーバに転送する system "scp リモートホスト:/path/to/dump/file /path/to/dump/file"; > 3.WEBサーバにあるdumpからDBを復元する system "scp /path/to/dump/file リモートホスト:/path/to/dump/file"; system "ssh リモートホスト /path/to/restore/script.sh"; なお ssh は公開鍵認証等で自動認証するよう設定するとよいです。

参考URL:
http://www.stackasterisk.jp/tech/systemConstruction/openssh01_02.jsp#7

関連するQ&A