2012年2月6日月曜日

Dropboxを使ったXAMPP環境の二点間同期 ②

前回の記事と同様にDropboxを使ったXAMPP環境の二点間同期のお話です。

今回は前回示した手順を自動化します。


まずStrawberry Perlをインストールします。

そして以下のスクリプトを書きます
#---------------------------------------------------------------------------
#↓↓↓ここからソース↓↓↓
#---------------------------------------------------------------------------

use strict;
use warnings;
use Archive::Zip;
use File::Copy;


my $cmd = 'C:\pleiades\xampp\mysql\bin\mysqldump.exe -u root -x --all-databases > C:\pleiades\xampp\htdocs\dump.sql';
system( $cmd );
#日付、時間を取得
my ($sec, $min, $hour, $mday, $mon,
    $year, $wday, $yday, $isdst) = localtime();
$year += 1900;
$mon += 1;
print "バックアップを行います。\n$year年$mon月$mday日\n";

#ファイル名
my $zip_file = $year . "_" . $mon . "_" . $mday . "_" . $hour . "_" . $min . "_" . $sec . '_Backup.zip';

#ZIPファイル作成
my $zip = Archive::Zip->new();
$zip->addTree('C:/pleiades/xampp/htdocs', 'htdocs');
$zip->writeToFileNamed($zip_file);

#ネットワークフォルダにコピー
copy( $zip_file, "バックアップを取りたい場合のパス" .  $zip_file);

#---------------------------------------------------------------------------
#↑↑↑ここまでソース↑↑↑
#---------------------------------------------------------------------------

あとは作成したファイルをDropboxフォルダ内で実行するとhtdocsにDBdumpをとってそれをZIPで固めたものがDropboxで共有できます

3 件のコメント:

  1. さすがTさんですね。

    Perlは、ActivePerlではだめですか?

    返信削除
    返信
    1. 試していないのでなんとも言えないのですが、特別なモジュールを使っているわけではないので動くと思います。
      windowsではActivePerlの方が知名度が高いですし情報も多いのですが、Strawberry PerlはCPANから直接モジュールをインストールできるので便利な場面が多いです。

      削除
  2. 以前教えていただいた方法とても重宝しています。

    お話されていた自動化とはこういうものだったんですね~

    返信削除