アメリカン・エキスプレス。たとえば、空港からスーツケース無料配送

2008年01月20日

jAthena backup Athena用データバックアップツール




#!/usr/bin/perl

#####################################
#####################################
# Athena用データバックアップツール
#
#  Athenaの各種データファイル*.txtをバックアップするツール
#
#------------------------------------------------------
-------------------
# 設定方法
#  実行する時のカレントフォルダからのデータへのパス、ファイルのリストを
#  正しく設定します。バックアップ先のフォルダは自動作成されないので、
#  自分で作成しておく必要があります。
#  フォルダの最後の「/」は省略できません。
#
#  フォルダは引数でも指定できます。例>./backup ../save/ ./backup_data/
#  フォルダの最後の「/」は省略できません。
#
#  実行するとバックアップ先のフォルダへ、ファイル名に現在の日付と時刻を
#  つけてファイルをコピーします。
#
# * toolフォルダ内にbackup_dataフォルダを作成し、
#   athena.shの中に「./tool/backup ./save/ ./tool/backup_data/」
# という行を追加すると、athenaを起動するたびにバックアップが取れます
#
# 復元するときは引数に「-r 日付と時刻」を指定します。
#  またその後ろにフォルダを指定することも出来ます
#  例1> ./backup -r 200309191607
#  例2> ./backup -r 200309191607 ../save ./backup_data/
#  この例では2003/09/19の16:07分にバックアップしたデータを復元しています
#
#  復元するとき、Athenaディレクトリにあるデータは *.bak に名前を変更して
#  残しているので、いらない場合は rm *.bak などで消してください。
#
##################################################
########################

$sdir="/ragnarok/jathena-2060/save/"; #バックアップ元(Athenaのディレクトリ/save/)
$tdir="/mnt/mo/RagnarokSaveData/"; #バックアップ先

@files=( #ファイルのリスト
"account","athena","storage","party","guild","castle","pet"
);


#-------------------------------設定ここまで----------
-------------------











if($ARGV[0]=~/^\-r$/i || $ARGV[0]=~/\-\-(recover|restore)/i){
#復元処理

$file=$ARGV[1];
$sdir=$ARGV[2]||$sdir;
$tdir=$ARGV[3]||$tdir;
&restorecopy($_) foreach @files;
exit(0);
}

#バックアップ処理
$sdir=$ARGV[0]||$sdir;
$tdir=$ARGV[1]||$tdir;

unless( -d $tdir ){
print "$0: \"$tdir\" : No such directory\n";
exit(1);
}

(undef,$min,$hour,$day,$month,$year)=localtime;

$file=sprintf("%04d%02d%02d%02d%02d",
$year+1900, $month+1, $day, $hour, $min );

&backupcopy($_) foreach @files;
exit(0);

sub backupcopy {
my($name)= @_;
system("cp $sdir$name.txt $tdir$name$file.txt");
}

sub restorecopy {
my($name)= @_;
unless( -f "$sdir$name.txt" ){
printf("$0: \"$sdir$name.txt\" not found!\n");
return 0;
}
unless( -f "$tdir$name$file.txt" ){
printf("$0: \"$tdir$name$file.txt\" not found!\n");
return 0;
}
rename "$sdir$name.txt","$sdir$name.bak";
system("cp $tdir$name$file.txt $sdir$name.txt");
}

タグ:jAthena
posted by LinuxDK at 16:45| 千葉 ☁| Comment(0) | TrackBack(0) | Software - jAthena | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/79693582

この記事へのトラックバック
にほんブログ村 その他趣味ブログ アマチュア無線へ
にほんブログ村
にほんブログ村 バイクブログ カワサキへ にほんブログ村 IT技術ブログへ
食べログ グルメブログランキング banner_03[1].gif
押していただけると喜びます

長期間、樽でじ〜っくり熟成!【幻のプレミア麦焼酎】

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。