以前、会社の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"); ?> ******************************************************************************/