GUiLZ Project Personal & Experimental Blog

■ [ネット] CPI シェアードプラン用のバックアップスクリプトを書いてみた

以前、会社のWebサイトは C’s SERVER Professional を契約して失敗したと日記にも書いた けど、契約後1年が経過して年間契約も切れるので、乗り換えをすることにした。

余談だが、C’s SERVER Professional を利用してた間の大きなトラブルは、1度サーバーが午前中に数時間停止したってくらいだった。他は特に問題なく安定していたんじゃないかなと思う。まあほとんど静的コンテンツばかり&メールは使用していなかったので、DB速度とかメールレスポンスについては分からないけど。

ただ、そのトラブルでアップタイム保証に引っかかって、料金返還対象になったのだが、すでに支払われている料金は返還されず、翌年の年会費からの割引って言われたときにはセコいなと思った。結局今回業者乗り換えたし、全く補償になってねえな、と。

話を戻す。で、今度はベリサインの認証が使えてHDD容量激しく大きい、CPI の X50 Plus プランに乗り換えたのだが、シェアードプランは全プランでバックアップオプションが有料。

無料でバックアップオプションが付帯される、マネージドプランも別用途で契約してたので、そちらでどんな風にバックアップが作られてるのか確認すると、単純にWebサイトのエリアをまとめて tar.gz にして別ディレクトリに放り込んでるだけっぽかったので、似たようなものは作れるなと思って、phpで作ってみた。

ただ、CPI の cron 機能の制約として、プログラムやデータディレクトリのパスはフルパス指定しないとダメらしいので、データディレクトリの中身もフルパスで圧縮されてしまう。あと、バックアップを取るだけのスクリプトなので、何日以上前のバックアップは自動削除とかしないので、HDDの空き容量には注意。

とりあえず、自分の契約しているサーバーでは問題なく動いているけれど、動作保証とかは全くないので、利用の際は自己責任でお願いします。

<?php

/******************************************************************************

CPI シェアードプラン用
ファイルバックアップスクリプト

下記ユーザーID(コントロールパネルログイン用)、バックアップ先ディレクトリ、
MySQLパスワード(コントロールパネルログイン用パスワード) を環境に合わせて
設定してください。

その後、適当なディレクトリにアップロードし、スクリプト定期実行ツールから
スクリプトを任意のタイミングで呼び出してください。

******************************************************************************/

# ユーザーID
$userID = "x123456789";

# バックアップ先ディレクトリ
$b_dir = "backup_dir";

# MySQLパスワード
$password = "password";

# 日付を取得
$date = date(Ymd);

# 当日分のバックアップフォルダ作成
exec ("/bin/mkdir /usr/home/$userID/$b_dir/$date");

# ファイルのバックアップ
exec ("/usr/bin/tar cvfz /usr/home/$userID/$b_dir/$date/html_$date.tar.gz /usr/home/$userID/html");
exec ("/usr/bin/tar cvfz /usr/home/$userID/$b_dir/$date/secure_$date.tar.gz /usr/home/$userID/secure");
exec ("/usr/bin/tar cvfz /usr/home/$userID/$b_dir/$date/virtual_$date.tar.gz /usr/home/$userID/virtual");

# MySQL5 データベースのバックアップ
exec("/usr/local/mysql5/bin/mysqldump --user=$userID --password=$password --default-character-set=binary $userID > /usr/home/$userID/$b_dir/$date/mysql5_$date.sql");
exec("/usr/bin/gzip /usr/home/$userID/$b_dir/$date/mysql5_$date.sql");

/******************************************************************************

MySQL4 のバックアップをされる場合は、下記をお使いください。
ただし MySQL4 のバックアップに関しては、私が利用していないため未検証です。

# MySQL4 データベースのバックアップ
exec("/usr/local/mysql/bin/mysqldump --user=$userID --password=$password --default-character-set=binary $userID > /usr/home/$userID/$b_dir/$date/mysql4_$date.sql");
exec("/usr/bin/gzip /usr/home/$userID/$b_dir/$date/mysql4_$date.sql");
?>

******************************************************************************/

スポンサードリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

当サイトのコメント欄は承認制となっております。また、日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

スポンサードリンク

Twitter
利用中のサービス

GUiLZ Project では、以下のサービスを利用しています。


関連サイト
巡回先サイト様
アーカイブ