2013-06-25

サイトのtarアーカイブをPHPスクリプトでやる(手抜き編)

FTPって細切れファイルだと、異常に時間かかってイライラしますよね。
コレのせいで、バックアップが先送りになる事も。(そして死亡)

と言う事で、アーカイブしようと言う話です。
SSHが使えれば、何ら問題無い訳ですが、無料系だとダメな場合が殆どです。
なので、PHPスクリプトで固めることにします。
でも、セキュリティ対策で、execとかが使えなくなっていたりします。

もう面倒なので、pearパッケージでサクッと実施。
pearが動かんと言うのであれば、自力インストールかしら…。
今回使うパッケージは、Archive-Tarです。
http://pear.php.net/manual/ja/package.filesystem.archive-tar.php

pearは入っているけど動かない時に備えて、Tar.phpを一緒にアップロードした方が良いです。
ちなみに、自分がその時に使う事にして、使い終わったらサクッと削除する前提です。
その為、セキュリティ対策やらその他色々をしていません。(あくまでもメモ書き)
相対位置等は、置き換えてください。
あくまで、さくっとやりたい時用です。

固める方法のサンプル
<?php
ini_set( 'display_errors', 1 ); //表示処理していないので確認用にエラーリポート出す。
require_once "./Tar.php"; //Tar.php読み込み
$archiveFile = "backup.tar.gz"; //バックアップファイル名
$Tar = new Archive_Tar($archiveFile, "gz"); //TAR.GZ形式
$Tar->create("./etc"); //バックアップ元指定
echo "OK_archive"; //終了表示
?>

展開する方法のサンプル
<?php
ini_set( 'display_errors', 1 ); //表示処理していないので確認用にエラーリポート出す。
require_once "./Tar.php"; //Tar.php読み込み
$tar = new Archive_Tar('backup.tar.gz', true); //展開ファイル名
$result = $tar->extract("./"); //展開先指定
echo "ok_extract"; //終了表示
?>

指定されにくい適当な名前.php でサーバーにUPLOADして、ブラウザーでURLを呼び込む。
最近のサーバーは、速いので短時間で終わると思います。
ただし、リソース制限でタスク落とされるかもしれません。
普通のサイト程度なら大丈夫な処理だと思います。(無保証)
後は、そそくさと消してください。(特に展開)
エラーリポートが出ていたら、それを見てください。

ちなみに、解凍だけならZIP展開の方が、面倒無いです。(標準で出来ます)

0 コメント:

コメントを投稿