- 締切済み
phpでmysqldump作成
dump作成はphpファイルを動作させることで行っており、現在は下記内容のファイルをcronで動作させ、同一サーバ内に格納しています。 (phpファイルもDBも1つのサーバにあります。) このdump格納先に、別のファイルサーバを指定することは可能でしょうか? <dump作成用phpファイル> <?php @system("mysqldump --databases hoge > /var/admin/hoge.dump"); ?>
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 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作成」「転送」というのが分かれているゆえ、エラーの際に不具合を起こした箇所を特定し、ログ化するのが容易だからです。
お礼
回答ありがとうございます。 書いていただいている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)の転送を行っていると思うのですが・・・ がんばって解析してみます!