バリューサーバーのmysqlバックアップ

新しくバリューサーバーを試してみた。しばらく「さくらのVPS」を使っていたが、wordpress は問題なく使えるが joomla は重過ぎて、そのレスポンスが追いついてくれない。仕方なく VPS と一般レンタルサーバーと二台切り分けて使用することにした。

使用アプリはphpMyBackupPro v.2.4
普通にDB1を登録

ディレクトリ
/virtual/User/Backup/exportを作成

データベースにUser_DB2,User_DB3を追加、計3個

まず/virtual/User/Backupに
global_conf.php
global_conf_sql.php
を移動

global_conf_sql.php
コメントアウト(/* */)に注意してDB2,DB3を列記、くれぐれもDB1を記載しないこと。
<?php
/*
Use this file to list the mysql hosts with usernames and passwords.
Do not list that account which you already specified in phpMyBackupPro under 'configuration'!

Simply copy the next four lines as often as needed after this comment (after * / )
Replace 'localhost', 'your username' and 'your password' with your data.
Set 'use only this db' to a databases name if you only want to work with one database.
If you want to work with all accessable databases on the server set it to "" (empty).
*/
$CONF['sql_host_s'][]="localhost";
$CONF['sql_user_s'][]="User_DB2";
$CONF['sql_passwd_s'][]="abcdefg";
$CONF['sql_db_s'][]="User_DB2";

$CONF['sql_host_s'][]="localhost";
$CONF['sql_user_s'][]="User_DB3";
$CONF['sql_passwd_s'][]="xyzxyzxyz
$CONF['sql_db_s'][]="User_DB3";
?>

phpMyBackupPro ディレクトリの
definitions.phpを編集
$_PMBP_GLOBAL_CONF="../../../Backup/global_conf.php";
$_PMBP_EXPORT_DIR="../../../Backup/export/";
define('PMBP_GLOBAL_CONF_SQL',"../../../Backup/global_conf_sql.php");


サイトでDB1,DB2,DB3を確認する



次にスケジュールバックアップをクリック



Select working SQL server:?でDB1を選択

Select directory where the PHP file will be placed: (Update directory list)で?phpMyBackupPro?のフォルダを選択
/virtual/User/public_html/YourSite/phpMyBackupPro/

Select databases to backupでDB1を選択
「Show Script」でスクリプトを保存
autoBacup_DB1.php
同様にSelect working SQL server:?でDB2を選択
autoBacup_DB2.php
さらにSelect working SQL server:?でDB3を選択
autoBacup_DB3.php

autoBacup_DB1.phpはこんな感じ
<?php
// This script was created by phpMyBackupPro v.2.4 (http://www.phpMyBackupPro.net)
// In order to work probably, it must be saved in the directory /virtual/User/public_html/YourSite/phpMyBackupPro/.
$_POST['db']=array("User_DB1", );
$_POST['tables']="on";
$_POST['data']="on";
$_POST['drop']="on";
$_POST['zip']="zip";
$_POST['mysql_host']="0";
$period=(3600*24)*0;
$security_key="**********************************";
// switch to the phpMyBackupPro v.2.4 directory
@chdir("/virtual/User/public_html/YourSite/phpMyBackupPro/");
@include("backup.php");
// switch back to the directory containing this script
@chdir("/virtual/User/public_html/YourSite/phpMyBackupPro/");
?>

次に同一ディレクトリ内に
dbbackup.php を作成 パーミッションを700
#!/usr/local/bin/php
<?php
file_get_contents('http://YourSite/phpMyBackupPro/autoBacup_DB1.php');
file_get_contents('http://YourSite/phpMyBackupPro/autoBacup_DB2.php');
file_get_contents('http://YourSite/phpMyBackupPro/autoBacup_DB3.php');
?>

ディレクトリ /virtual/User/sh を作成して
/virtual/User/sh/dbbackup.sh 作成?パーミッションを700
#!/bin/sh
#php
/virtual/User/public_html/YourSite/phpMyBackupPro/dbbackup.php
exit

バリューサーバーのcronジョブに登録

ジョブ指定に
sh/dbbackup.sh

画像は毎朝5時に
/virtual/User/sh/dbbackup.sh
を実行させる例

下の画像は/virtual/User/Backup/export/フォルダ
localhost_User_DB2,localhost_User_DB3フォルダが自動生成される



下の画像は自動生成された/virtual/User/Backup/export/User_DB2フォルダ
/virtual/User/Backup/export/User_DB3フォルダも同様



あとはWindows-Serverからジョブで自動で吸い上げれば、完全自動バックアップの出来上がりです。