ロリポップ!からケチケチバックアップする話
0.初めに
私は、非エンジニアのドシロウトです。しかも貧乏(汗)です。
元々、無料レンタルサーバーのXFREEで、とあるPHP製のオンラインメモの保管ツールで個人的なメモを保存し、テスト利用していました。
自分専用のオンラインメモツールは、意外と便利だったので、本格的に使って行こうと考えました。
XFREEの無料版は容量が1GB、SSL非対応で少しレスポンスも遅いときがあり、 格安のレンタルサーバーを探しました。
探した結果、結局、有名なロリポップ!レンタルサーバーで一番安いエコノミープランを試すことにしました。
エコノミーでも初期費用が1500円かかりますが、月額は100円で格安です。
エコノミープランは、容量20GB、SSL対応、PHPも使えますが、バックアップをするオプションを入れると月300円追加で必要です。
バックアップ / 機能一覧 / サービス - レンタルサーバーならロリポップ!
貧乏な私は、Google Apps Script(GAS)を使って、なんとかバックアップできないか、試すことにしました。
1.試したこと
試したことをまとめると以下です。
-
ダウンロード用PHPツール
ロリポップ!にあるメモ保存ディレクトリを丸ごとZIPにしてダウンロードするPHPツールの設置
-
起動/保存用GASツール
PHPツールをHTTPベースで起動し、ダウンロードしたZIPを、Google Driveに1世代保存するGASツールの作成、トリガー設定
2.ダウンロード用PHPツール
以下の記事の「PHPでzipコマンドを使ってディレクトリを丸ごと圧縮する」のPHPプログラムを丸パクリしています。
ZIPを一時保存するディレクトリを新たにロリポップ!に作ったのと以下のPHPプログラムを設置しただけです。
注)getZipのパラメタは、フルパスでの指定が必要ですが、ロリポップ!の管理画面の「ユーザー設定>アカウント情報」で分かります。
<?php
ini_set('display_errors', "On");
//$dir 取得したいフォルダパス
//$zipFileSavePath 一時、zipを保存しておくフォルダパス
function getZip($dir,$zipFileSavePath){
// zipファイル名
$fileName = "zipFile".time();
// 圧縮対象フォルダ
$compressDir = $dir;
// コマンド
// cd:ディレクトリの移動
// zip:zipファイルの作成
$command = "cd ". $compressDir .";".
"zip -r ". $zipFileSavePath . $fileName .".zip .";
// Linuxコマンドの実行
exec($command);
// 圧縮したファイルをダウンロードさせる。
header('Pragma: public');
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$fileName.".zip");
readfile($zipFileSavePath.$fileName.".zip");
// 消す
unlink($zipFileSavePath.$fileName.".zip");
}
getZip('/home/users/1/aaaa.jp-bbbbb/web/(保存ディレクトリ)','/home/users/1/aaaa.jp-bbbbb/web/(ZIP一時ディレクトリ)');
?>
3.起動/保存用GASツール
以下の記事を参考にGASを作成しました。
GASを使ってGoogle Drive内にあるファイルのダウンロードURLからコンテンツを取得したい - Qiita
gasのプログラムが以下でこれを1日1回実行するようにトリガー設定しています。
function myFunction() {
// バックアップファイル名 ※lolipop-down.zipを使ってます
var svrfilenamearray = [ "lolipop-down.zip",
"lolipop-downtest.zip" ];
// ドライブのファイル名取得
var filesdel = DriveApp.getFiles();
// ファイルがあるだけ繰り返す
while (filesdel.hasNext()) {
var filed = filesdel.next();
// バックアップファイル名かチェック
for(var i = 0; i < svrfilenamearray.length; i++) {
if (filed.getName() == svrfilenamearray[i]) {
// 古いバックアップファイル削除処理
filed.setTrashed(true);
Logger.log(filed.getName()+" バックアップファイル削除終了");
};
};
};
// ロリポップ!のダウンロード用PHPツールのURLを発行して受信
var blob = UrlFetchApp.fetch('https://(ロリポップ!のサイト)/down.php', {muteHttpExceptions: true}).getBlob();
// Google Driveに保存
DriveApp.createFile(blob.setName('lolipop-down.zip'));
}
4.終わりに
貧乏でなければ、普通にバックアップオプションを使った方が良いと思います。
牛丼一杯の値段ですので…
以 上
Author And Source
この問題について(ロリポップ!からケチケチバックアップする話), 我々は、より多くの情報をここで見つけました https://qiita.com/basictomonokai/items/87a3820b885c1834f7e5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .