• 締切済み

phpでmysqldump作成

dump作成はphpファイルを動作させることで行っており、現在は下記内容のファイルをcronで動作させ、同一サーバ内に格納しています。 (phpファイルもDBも1つのサーバにあります。) このdump格納先に、別のファイルサーバを指定することは可能でしょうか? <dump作成用phpファイル> <?php @system("mysqldump --databases hoge > /var/admin/hoge.dump"); ?>

みんなの回答

  • wp_
  • ベストアンサー率54% (132/242)
回答No.1

ネットワークでマウントした外部サーバに出力、と言う方法があります。 /mntでマウントされているとして system("mysqldump --databases hoge > /mnt/admin/hoge.dump"); または一時的にローカルへdumpし、scpなりftpなりで転送という方法もあります。 system("mysqldump --databases hoge > /tmp/hoge.dump"); system("scp /tmp/hoge.dump USER@REMOTE:/var/admin/hoge.dump"); 私は二つ目のほうを推奨です。 理由として「dump作成」「転送」というのが分かれているゆえ、エラーの際に不具合を起こした箇所を特定し、ログ化するのが容易だからです。

noname#102084
質問者

お礼

回答ありがとうございます。 書いていただいている2種類のやりかたはすごくよくわかりました。 私も後者の「(1)一度ローカルへdump(2)転送」というふうにしたいと思います。 ただ、書いていただいている >system("mysqldump --databases hoge > /tmp/hoge.dump"); >system("scp /tmp/hoge.dump USER@REMOTE:/var/admin/hoge.dump"); の命令が理解できずとまっております; 1行目が(1)の作業で、2行目が(2)の転送を行っていると思うのですが・・・ がんばって解析してみます!